我有一个实体(地址),它有一个相互关联的实体(国家)。
<Table Name="dbo.Address" Member="Address">
<Type Name="TS.Club.Domain.Model.ValueObject.Address">
<Column Name="Identifier" Member="Identifier" DbType="UniqueIdentifier NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="false" AutoSync="OnInsert" />
<Column Name="ReferenceIdentifier" Member="ReferenceIdentifier" DbType="UniqueIdentifier NOT NULL"/>
<Column Name="CountryIdentifier" Member="CountryIdentifier" DbType="UniqueIdentifier NOT NULL"/>
<Column Name="StreetAddress" Member="StreetAddress" DbType="Varchar(512)"/>
<Column Name="ZipCode" Member="ZipCode" DbType="Varchar(8)"/>
<Column Name="City" Member="City" DbType="Varchar(512)"/>
<Column Name="AddressType" Member="Type" DbType="tinyint"/>
<Association Member="Country" ThisKey="CountryIdentifier" IsForeignKey="true" DeleteRule="NO ACTION" />
</Type>
</Table>
我的问题是该国家/地区是我的数据库中的“硬编码”表,所以我希望它在我加载地址时加载,但我不希望它更新och插入我保存我的地址到数据库。现在我收到错误:无法使用已在使用的密钥添加实体。
如何解决这个问题,不可能,但我找不到解决方案。
答案 0 :(得分:0)
您是否为每个地址创建了新的国家/地区副本?
一般来说,这是一种错误的做法。尝试选择这样的现有实体:
Country cc = from c
db.Countries where c.CountryIdentifier == neededID select c;