2

主キーとして PresentationAuditId という列を持つ SQL Server 2008 に ScanMasters というテーブルがあります。この列も外部キーです。このテーブルには、ScanPartId という ID 列もあります。データベースに基づいて POCO を生成するために Entity Framework 4.1 を使用しています。EF SSDL は、エンティティを次のように表します。

<EntityType Name="ScanMasters">
  <Key>
    <PropertyRef Name="PresentationAuditId" />
  </Key>
  <Property Name="ScanPartId" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
  <Property Name="RackNum" Type="int" />
  <Property Name="LoadDatetime" Type="datetime" />
  <Property Name="PresentationAuditId" Type="bigint" Nullable="false" />
  <Property Name="Item" Type="varchar" MaxLength="31" />
</EntityType>

このエンティティに新しいデータを追加して SaveChanges() を実行すると、次のエラーが発生します。

IDENTITY_INSERT が OFF に設定されている場合、テーブル 'ScanMasters' の ID 列に明示的な値を挿入できません。

EF 4.1 の ID 列として非主キー列を使用できますか? これについてどうすればいいですか?

4

0 に答える 0