美好的一天,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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。