2010-02-12 70 views
0

我有一個實體(地址)有一個輔助實體(國家)。不要將關聯對象保存到Linq To Sql中

<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

您是否爲每個地址創建新的國家/地區副本?
一般來說,這是一種錯誤的方法。嘗試選擇一個像這樣的現有實體:

Country cc = from c 
db.Countries where c.CountryIdentifier == neededID select c;