Self Tracking Entities not returning modified object

170 views Asked by At

I have the following function to update and insert a record in the table

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;
    }

When I make first call with a new object of type DASInput, then it gets inserted correctly in the database. (DASInput table has the primary key as int with identity specification on).

But this first time insertion does not return the modified value of the primary key of the DASInput table.

So on every subsequent call a new record gets inserted in the database. I want the primary key(self generated by DB) to be returned to the client when the record gets inserted.

1

There are 1 answers

2
Patrick McCurley On

Isn't the syntax for adding an entity into a linq controlled database more along the lines of :

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

context.SaveChanges();

I do answer this tentatively, not being hugely knowledgeable on LINQ.