实体框架:创建独立实体
作者:互联网
美好的一天,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