不返回已修改对象的自跟踪实体

本文关键字:跟踪 实体 对象 返回 修改 | 更新日期: 2023-09-27 18:34:09

我有以下函数来更新和插入表中的记录

public DASInput UpdateDASInputTable(DASInput fileSetData, Guid programID)
    {
        string connectionString = GetConnectionString(programID);
        BI_ProgramConfigurationEntities dataContext = new BI_ProgramConfigurationEntities(connectionString);
        dataContext.DASInputs.ApplyChanges(fileSetData);
        dataContext.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
        fileSetData = dataContext.DASInputs.FirstOrDefault();
        return fileSetData;
    }

当我使用 DASInput 类型的新对象进行第一次调用时,它会正确插入到数据库中。(DASInput 表的主键为 int,标识规范为打开)。

但是,第一次插入不会返回 DASInput 表的主键的修改值。

因此,在每次后续调用时,都会在数据库中插入一条新记录。我希望在插入记录时将主键(由数据库自行生成)返回给客户端。

不返回已修改对象的自跟踪实体

将实体添加到 linq 控制的数据库中的语法不是更像是:

context.Table.AddObject(newStore);
//or
context.Table.Add(newStore);
context.SaveChanges();

我确实试探性地回答这个问题,对 LINQ 不是很了解。