sql >> データベース >  >> RDS >> Oracle

VSエンティティフレームワークのOracleエンティティは、コードの主キーを更新しません

    XMLエディターで.edmxファイルを開き、次の行で始まるセクションを探します。

    <!-- SSDL content -->
    

    以下はEntityTypeタグであり、その中にデータベーステーブルの定義があります。 ID列のプロパティにStoreGeneratedPattern="Identity"があることを確認してください 初期化。

    このSSDLセクションの下には、似たようなCSDLセクションがありますが、このエンティティを表すC#オブジェクトを定義しています。ビジュアルデザイナーは、StoreGeneratedPatterninのこのセクションにのみ入力し、SSDLセクションには入力しないようです。

    サンプルで編集

    これは、ID、FirstName、およびLastNameプロパティのみを含むEmployeeエンティティのサンプルEDMXファイルです。 IDは、データベースによって自動生成されるフィールドです。 StoreGeneratedPatternが必要な場所は2つあることに注意してください。

    <?xml version="1.0" encoding="utf-8"?>
    <edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
      <!-- EF Runtime content -->
      <edmx:Runtime>
        <!-- SSDL content -->
        <edmx:StorageModels>
          <Schema Namespace="Store" Alias="Self" Provider="Oracle.DataAccess.Client" ProviderManifestToken="10g"
                  xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
                  xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
            <EntityContainer Name="StoreContainer">
              <EntitySet Name="EMPLOYEE" EntityType="Store.EMPLOYEE" store:Type="Tables" Schema="TESTSPACE" />
            </EntityContainer>
            <EntityType Name="EMPLOYEE">
              <Key>
                <PropertyRef Name="ID" />
              </Key>
              <!-- The below property requires StoreGeneratedPattern="Identity" -->
              <Property Name="ID" Type="number" StoreGeneratedPattern="Identity" Nullable="false" Precision="10" />
              <Property Name="FIRST_NAME" Type="varchar2" MaxLength="255" />
              <Property Name="LAST_NAME" Type="varchar2" MaxLength="255" />
            </EntityType>
          </Schema>
        </edmx:StorageModels>
        <!-- CSDL content -->
        <edmx:ConceptualModels>
          <Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
                  xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
                  xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" Namespace="Model" Alias="Self"
                  xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation">
            <EntityContainer Name="ModelContainer" annotation:LazyLoadingEnabled="true">
              <EntitySet Name="Employees1" EntityType="Model.Employee" />
            </EntityContainer>
            <EntityType Name="Employee">
              <Key>
                <PropertyRef Name="ID" />
              </Key>
              <!-- The below property requires StoreGeneratedPattern="Identity" -->
              <Property Type="Int32" Name="ID" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
              <Property Type="String" Name="FirstName" MaxLength="255" FixedLength="false" Unicode="false" />
              <Property Type="String" Name="LastName" MaxLength="255" FixedLength="false" Unicode="false" />
            </EntityType>
          </Schema>
        </edmx:ConceptualModels>
        <!-- C-S mapping content -->
        <edmx:Mappings>
          <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
            <EntityContainerMapping StorageEntityContainer="StoreContainer" CdmEntityContainer="ModelContainer">
              <EntitySetMapping Name="Employees1">
                <EntityTypeMapping TypeName="Model.Employee">
                  <MappingFragment StoreEntitySet="EMPLOYEE">
                    <ScalarProperty Name="LastName" ColumnName="LAST_NAME" />
                    <ScalarProperty Name="FirstName" ColumnName="FIRST_NAME" />
                    <ScalarProperty Name="ID" ColumnName="ID" />
                  </MappingFragment>
                </EntityTypeMapping>
              </EntitySetMapping>
            </EntityContainerMapping>
          </Mapping>
        </edmx:Mappings>
      </edmx:Runtime>
      <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
      <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2008/10/edmx">
        <edmx:Connection>
          <DesignerInfoPropertySet>
            <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
          </DesignerInfoPropertySet>
        </edmx:Connection>
        <edmx:Options>
          <DesignerInfoPropertySet>
            <DesignerProperty Name="ValidateOnBuild" Value="true" />
            <DesignerProperty Name="EnablePluralization" Value="True" />
            <DesignerProperty Name="IncludeForeignKeysInModel" Value="True" />
          </DesignerInfoPropertySet>
        </edmx:Options>
        <!-- Diagram content (shape and connector positions) -->
        <edmx:Diagrams>
          <Diagram Name="Model">
            <EntityTypeShape EntityType="Model.Employee" Width="1.5" PointX="0.75" PointY="0.75"
                             Height="1.4279589843749996" />
          </Diagram>
        </edmx:Diagrams>
      </edmx:Designer>
    </edmx:Edmx>
    



    1. PostgreSQLエラー:リレーションはすでに存在します

    2. 拡張機能を再配置不可にする方法は?

    3. Accessで計算フィールドを作成する方法

    4. MySQLにあるようなブールデータ型はMicrosoftSQLServerにありますか?