美好的一天,stackoverflow
我的问题是:当DataContextModel
中的实体在代码中的某个地方被实例化时,它是否已经引用了数据库记录?或者它可以用作普通class
吗?例如:
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();
}
那么,当FirstEntity
退出时,SomeMethod
会以某种方式受到影响,还是会被删除?
提前谢谢。
答案 0 :(得分:4)
如果不在上下文范围内,那只是一个普通的课程。
但要小心,假设在另一个对象中引用了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();
这会将计算机和主板保存到数据库。