3

美好的一天,堆栈溢出。
我的问题是:当实体 fromDataContextModel在代码中的某处实例化时,它是否已经引用了数据库记录?或者它可以像普通一样使用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

4

1 回答 1

4

如果在上下文之外,它只是一个普通的类。

但要小心,假设 thisFirstEntity在另一个对象中被引用,如下所示:

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();

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

于 2013-04-03T12:47:20.873 回答