【问题标题】:How to get the identity value in Entity Framework during SaveChanges?如何在 SaveChanges 期间获取实体框架中的标识值?
【发布时间】:2013-02-01 12:41:43
【问题描述】:

我有一个基表和从属表,以及其他表。当基表的标识值由于外键关系映射到依赖表时,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 生成的值。我怀疑这个问题是这些表没有与关系相关联。我不应该这样做,因为键也可以保存其他表。

请在这方面帮助我。

提前致谢!

【问题讨论】:

    标签: entity-framework entity-framework-4 entity-framework-4.1 entity-framework-5


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      相关资源
      最近更新 更多