gpt4 book ai didi

c# - Entity Framework : creating standalone entity

转载 作者:行者123 更新时间:2023-11-30 15:34:47 25 4
gpt4 key购买 nike

你好,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();
}

那么,当 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();

这会将ComputerMotherboard 都保存到数据库中。

关于c# - Entity Framework : creating standalone entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com