0

我有一個基表和依賴表,以及其他表。由於外鍵關係,當基表的標識值映射到從屬表時,EF 4.0(使用MS VS 2010 Ultimate)性能良好。我期望更多的是,相同的身份值應映射/複製到跟蹤鍵/值對的非關聯/不相關表中的列。例如,如果基表的第一個記錄標識生成爲1,我希望將該編號複製到該鍵/值表中。 當我嘗試時,它在實體框架中的SaveChanges()上下文期間僅插入0。這個特定的列被映射到基表的列標識屬性。它是這樣,如何在SaveChanges中獲取實體框架中的身份值?

BaseTable baseTable = new BaseTable(); 
// Added properties of basetable values 
KeyValueTable table = new KeyValueTable(); 
table.Key = baseTable.BaseId; 
table.Value = name; 
AddToKeyValueTable(table); 
SaveChanges(); 

如果我看一看到KeyValueTable,這個密鑰被寫入爲0,而不是baseTable的產生價值。我懷疑這個問題可能是這些表格與關係沒有關聯。我不應該這樣做,因爲鑰匙也可以放置其他桌子。

請在這部分幫助我。

在此先感謝!

回答

1

你不能得到你想要的主鍵value以這種方式,因爲@@scope_identity還沒有準備好get

嘗試做這樣的

BaseTable baseTable = new BaseTable(); 
... 
// Added properties of basetable values 
SaveChanges(); 

KeyValueTable table = new KeyValueTable(); 
table.Key = baseTable.BaseId; 
table.Value = name; 
AddToKeyValueTable(table);