其他分享
首页 > 其他分享> > 实体框架:创建独立实体

实体框架:创建独立实体

作者:互联网

美好的一天,stackoverflow.
我的问题是:当DataContextModel中的实体在代码中的某个地方实例化时,它是否已经具有对数据库记录的引用?还是可以用作普通类?例如:

public void SomeMethod()
{
   var FirstEntity = new DBEntity(); //DBEntity is some entity from the database
   var SecondEntity = new DBEntity();
   var ThirdEntity = new DBEntity();
   DbSet<DBEntity>.Add(SecondEntity);
   DbSet<DBEntity>.Add(ThirdEntity);
   DbContext.SaveChanges();
}

那么,当SomeMethod退出时,FirstEntity会受到某种影响还是会被删除?
提前致谢.

解决方法:

如果不在上下文中,那只是一个普通的类.

但是要小心,假设此FirstEntity在另一个对象内被引用,如下所示:

var FirstEntity = new DBEntity(); 
var SecondEntity = new DBEntity();
var ThirdEntity = new DBEntity();
DbSet<DBEntity>.Add(SecondEntity);
DbSet<DBEntity>.Add(ThirdEntity);
SecondEntity.Sibling = FirstEntity;

保存更改时,如果示例中的Sibling是外键引用,它将自动将FirstEntity添加到数据库中.

另一个例子要清楚:

var Computer = new ComputerEntity();
var Motherboard = new MotherboardEntity();
Computer.Motherboard = Motherboard;
DbSet<ComputerEntity>.Add(Computer);
DbContext.SaveChanges();

这会将计算机和主板都保存到数据库中.

标签:entity-framework-5,linq,c
来源: https://codeday.me/bug/20191031/1972765.html