当前位置: 首页 > 编程语言 > C#

EntityFramework是否自动保存相关类?分享

时间:2023-04-10 20:31:00 C#

EntityFramework会自动保存相关类吗?假设我们有这样的类publicclassA{stringsomeField{get;放;}公共虚拟BB{get;放;}}publicclassB{intsomeIntField{get;放;}[ForeignKey("Id")][必需]publicvirtualAA{get;放;在代码中,我为它们创建了新实例并建立了这样的关系:Aa=newA(){someField="abcd"};Bb=newB(){someIntField=42};AB=b;广管局=一个;我应该使用DBContext来保存这样的类:using(vardb=newmyDbContext()){myDbContext.As.Add(A);myDbContext.Bs。添加(乙);myDBContext.SaveChanges();}或保存它:使用(vardb=newmyDbContext()){myDbContext.As.Add(A);myDbContext.SaveChanges();将相关对象存储到数据库中就足够了吗?从你的例子来看,如果你实例化一个新的实体对象,然后将子对象分配给父对象的属性,那么EF实际上会创建一个新的子实例(记录)并将其映射到父对象作为引用。您的代码片段有点混乱,因为您有从A到B和B到A的引用,但请考虑以下几点:如果您有2个实体:publicclassA{publicintId;}publicclassB{publicintId;公共AA;保存时你做这样的事情:Aa=newA();Bb=新B();bA=一个;dbcontext.SaveChanges();然后EF会为A创建一条新记录,为B创建一条新记录,并将新创建的A记录的引用添加到B。详见这篇文章。保存包含其他对象的对象就足够了。它还会自动保存对包含对象的更改。您可以创建一个小示例并查看适合自己的方法。使用(vardb=newmyDbContext()){myDbContext.As.Add(A);myDbContext.SaveChanges();这应该足够了。以上是C#学习教程:EntityFramework是否自动保存相关类?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: