Механизм Приложения Google: как я могу программно получить доступ к свойствам своего Образцового класса?

MariaDB Lethargic Manual Remedy

  • Использование EF6, VisualStudio 2015 против MariaDB 10.2.
  • Так же, как указано @Santhos, отбрасывая мне тонну времени. Похоже, VisualStudio медленно разбирает этот огромный XML-файл ( у моей машины разработки только 8-гигабайтная оперативная память ). Нет шутки, около 15 минут для обновления.
  • Я узнал, что вручную 'resetting' несколько файлов, а затем через обновление графического интерфейса быстро откликнулся. Я нахожусь и выхожу с блестящими новыми моделями ~ 1-2 минуты.

Ручные шаги обновления

  1. Замените содержимое вашего файла .edmx.diagram на Boilerplate EDMX Diagram ниже
  2. Замените содержимое вашего файла .edmx на Boilerplate EDMX Runtime ниже
  3. Вернитесь к VisualStudio, дважды щелкните EDMX> в правом щелчке в пустой экран> Обновить модели из базы данных

Диаграмма EDMX Boilerplate

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
 <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
  <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
    <!-- Diagram content (shape and connector positions) -->
    <edmx:Diagrams>
      <Diagram DiagramId="820459acb0f543cfaf7db8643f38c2d6" Name="Diagram1" ZoomLevel="85">
        </Diagram>
    </edmx:Diagrams>
  </edmx:Designer>
</edmx:Edmx>

EDMX Runtime Boilerplate

<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="3.0" xmlns:edmx="http://schemas.microsoft.com/ado/2009/11/edmx">
  <!-- EF Runtime content -->
  <edmx:Runtime>
    <!-- SSDL content -->
    <edmx:StorageModels>
    <Schema Namespace="ShareDirectModel.Store" Provider="MySql.Data.MySqlClient" ProviderManifestToken="5.5" Alias="Self" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
        <EntityContainer Name="ShareDirectModelStoreContainer">
          </EntityContainer>
      </Schema></edmx:StorageModels>
    <!-- CSDL content -->
    <edmx:ConceptualModels>
      <Schema Namespace="ShareDirectModel" Alias="Self" annotation:UseStrongSpatialTypes="false" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns:customannotation="http://schemas.microsoft.com/ado/2013/11/edm/customannotation" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
        <EntityContainer Name="ShareDirectContext" annotation:LazyLoadingEnabled="true">
          </EntityContainer>
        </Schema>
    </edmx:ConceptualModels>
    <!-- C-S mapping content -->
    <edmx:Mappings>
      <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2009/11/mapping/cs">
        <EntityContainerMapping StorageEntityContainer="ShareDirectModelStoreContainer" CdmEntityContainer="ShareDirectContext">
          </EntityContainerMapping>
      </Mapping>
    </edmx:Mappings>
  </edmx:Runtime>
  <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
  <Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
    <Connection>
      <DesignerInfoPropertySet>
        <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
      </DesignerInfoPropertySet>
    </Connection>
    <Options>
      <DesignerInfoPropertySet>
        <DesignerProperty Name="ValidateOnBuild" Value="true" />
        <DesignerProperty Name="EnablePluralization" Value="true" />
        <DesignerProperty Name="IncludeForeignKeysInModel" Value="true" />
        <DesignerProperty Name="UseLegacyProvider" Value="false" />
        <DesignerProperty Name="CodeGenerationStrategy" Value="None" />
        <DesignerProperty Name="DDLGenerationTemplate" Value="$(VSEFTools)\DBGen\SSDLToMySQL.tt" />
      </DesignerInfoPropertySet>
    </Options>
    <!-- Diagram content (shape and connector positions) -->
    <Diagrams></Diagrams>
  </Designer>
</edmx:Edmx>
8
задан Liam 7 June 2015 в 08:25
поделиться

5 ответов

Если образцовый класс достаточно интеллектуален, он должен распознать стандартный Python способы сделать это.

Попытка:

getattr(p, s)
setattr(p, s, new_value)

Существует также hasattr доступен.

7
ответ дан 5 December 2019 в 15:28
поделиться

С очень благодаря Jim, точное решение, которое я искал:

p.properties()[s].get_value_for_datastore(p)

Всем другим респондентам, спасибо за Вашу справку. Я также ожидал бы, что Образцовый класс реализует стандарт Python способ сделать это, но по любой причине, он не делает.

3
ответ дан 5 December 2019 в 15:28
поделиться
getattr(p, s)
setattr(p, s, new_value)
1
ответ дан 5 December 2019 в 15:28
поделиться

Попытка:

p.model_properties()[s].get_value_for_datastore(p)

См. документацию.

1
ответ дан 5 December 2019 в 15:28
поделиться

p.first_name = "Новое имя" p.put ()

или p = Человек (first_name = "Firsty", last_name = "Lasty") p.put ()

-1
ответ дан 5 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: