Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何在保存更改期间获取实体框架中的标识值?_Entity Framework_Entity Framework 4_Entity Framework 4.1_Entity Framework 5 - Fatal编程技术网

Entity framework 如何在保存更改期间获取实体框架中的标识值?

Entity framework 如何在保存更改期间获取实体框架中的标识值?,entity-framework,entity-framework-4,entity-framework-4.1,entity-framework-5,Entity Framework,Entity Framework 4,Entity Framework 4.1,Entity Framework 5,我有一个基表、依赖表和其他表。当基表的标识值由于外键关系映射到依赖表时,EF 4.0(使用MS VS 2010 Ultimate)的性能良好。我更期望的是,相同的标识值应该映射/复制到未关联/不相关表中的列,该表跟踪键/值对。例如,如果基表的第一个记录标识生成为1,则我希望将该编号复制到该键/值表中。 当我尝试时,它在实体框架中的SaveChanges()上下文中仅插入为0。此特定列映射到基表的列的标识属性。就像 若我查看KeyValueTable,这个键将被写为0,而不是baseTable生成

我有一个基表、依赖表和其他表。当基表的标识值由于外键关系映射到依赖表时,EF 4.0(使用MS VS 2010 Ultimate)的性能良好。我更期望的是,相同的标识值应该映射/复制到未关联/不相关表中的列,该表跟踪键/值对。例如,如果基表的第一个记录标识生成为1,则我希望将该编号复制到该键/值表中。 当我尝试时,它在实体框架中的SaveChanges()上下文中仅插入为0。此特定列映射到基表的列的标识属性。就像

若我查看KeyValueTable,这个键将被写为0,而不是baseTable生成的值。我怀疑这个问题可能是这些表与关系无关。我不应该这样做,因为钥匙也可以放其他桌子

请在这方面帮助我


提前谢谢

您无法通过这种方式从所需主键获取
值,因为尚未准备好
获取

试着这样做

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

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

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