如何在Entity框架中获取没有saveChanges的插入实体的Id?
这个问题在这里已经有了答案:
//MyClass has Id as property, this is set by the DB server
var myObject = new MyClass { NotIdProp = someVal; }
int idAfterInsert; //or string if using GUID for Id
//transaction and then dispose DB context
using (var db = new MyContext())
{
//add the entity object
db.MyTable.Add(myObject);
//now myObject will have its Id set by the DB server
idAfterInsert = myObject.Id;
//that's it if you don't want to Save Changes
}
然而,如果你的对象应该挂起,而不是在这个阶段保存,只是添加另一个SQL列,如提交或批准,并使它bit
值(在C#中的布尔值),我没有看到这可能是有用的模式。
然后当读取记录时,不要通过在bool列上过滤来获取您不想要的记录。
如果使用序列生成键值而不是IDENTITY列,则可以在插入数据库之前获取键值。
EF Core支持这种原生序列,您可以在EF6中使用一些自定义SQL来完成此操作。
链接地址: http://www.djcxy.com/p/33553.html上一篇: How can I get Id of inserted entity without saveChanges in Entity framework?
下一篇: How can I get Id of inserted entity in Entity framework when using defaultValue?