我有一个基表和从属表,以及其他表。当基表的标识值由于外键关系映射到从属表时,EF 4.0(使用MS VS 2010 Ultimate)执行正常。我期望更多的是,应该将相同的标识值映射/复制到跟踪键/值对的非关联/非关联表中的列。例如,如果基表的第一个记录标识生成为1,我希望将此数字复制到该键/值表中。 当我尝试时,它在实体框架中的SaveChanges()上下文中仅插入0。此特定列将映射到基表的列的标识属性。它就像,
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的生成值。我怀疑这个问题是这些表与关系无关。我不应该这样做,因为密钥也可以容纳其他表。
请帮助我。
提前致谢!
答案 0 :(得分: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);