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

时间:2012-05-14 11:54:32

标签: c# wcf self-tracking-entities

我有以下功能来更新并在表格中插入记录

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表的主键的修改值。

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

1 个答案:

答案 0 :(得分:0)

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

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

context.SaveChanges();

我试探性地回答这个问题,而不是对LINQ非常了解。