1

我们将 EF5 与 Oracle [Oracle.manageddataaccess.client] 一起使用。每当我创建/刷新 edmx 时。我会丢失属性 StoreGeneratedPattern="Identity"。我必须为每个实体手动设置它。

有没有办法自动化它或任何其他解决方法?我在这里错过了什么吗?

我们使用VS2013,下面是创建后edmx中的示例实体。

<EntityType Name="ADDRESS">
          <Key>
            <PropertyRef Name="ADDRESS_ID" />
          </Key>
          <Property Name="ADDRESS_ID" Type="number" Precision="38" Scale="0" Nullable="false"  />
          <Property Name="CLIENT_ID" Type="number" Precision="38" Scale="0" Nullable="false" />
          <Property Name="USER_ID" Type="number" Precision="38" Scale="0" />
          <Property Name="ADDRESS_ACT_FLG" Type="number" Precision="38" Scale="0" />
          <Property Name="ADDRESS_1" Type="varchar2" MaxLength="50" />
          <Property Name="ADDRESS_2" Type="varchar2" MaxLength="50" />
          <Property Name="ADDRESS_3" Type="varchar2" MaxLength="50" />
          <Property Name="ADDRESS_4" Type="varchar2" MaxLength="50" />
          <Property Name="ADDRESS_SUFFIX" Type="char" MaxLength="2" />
          <Property Name="COUNTY" Type="varchar2" MaxLength="50" />
          <Property Name="CITY" Type="varchar2" MaxLength="50" />
          <Property Name="STATE_PROVINCE" Type="varchar2" MaxLength="75" />
          <Property Name="COUNTRY" Type="varchar2" MaxLength="50" />
          <Property Name="POSTAL_CODE" Type="varchar2" MaxLength="10" />
          <Property Name="ADDRESS_TYPE" Type="varchar2" MaxLength="2" />
          <Property Name="PRIMARY_ADDRESS_IND" Type="number" Precision="38" Scale="0" />
          <Property Name="CREATED_USER_ID" Type="number" Precision="38" Scale="0" Nullable="false" />
          <Property Name="CREATED_DATE" Type="timestamp" Precision="6" Nullable="false" />
          <Property Name="MODIFIED_USER_ID" Type="number" Precision="38" Scale="0" Nullable="false" />
          <Property Name="MODIFIED_DATE" Type="timestamp" Precision="6" Nullable="false" />
        </EntityType>
4

1 回答 1

4

我写了一篇关于它的简短博客文章:http: //blog.aitgmbh.de/2014/06/02/patch-for-entity-framework-models-based-on-oracle-databases/

在那里我还提到了我创建的 NuGet 包:http: //bit.ly/1hbxIsO

这会添加自动操作 edmx 文件的 MSBuild 脚本。

它基本上允许您定义哪些列应该是标识列,并确保在每次构建时这些标识列的 StoreGeneratedPattern 属性设置为“标识”。

更新:该补丁现在也可以在GitHub上找到。

于 2014-06-03T09:15:39.197 回答