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

删除对象及其相关实体Share

时间:2023-04-10 17:29:45 C#

DeleteObjectandItsRelatedEntities有谁知道如何删除对象及其所有相关实体。例如,我有表Products、Category、ProductCategory和productDetails,productCategory正在连接Product和Category表。我从http://msdn.microsoft.com/en-us/library/bb738580.aspx读到,删除父对象也会删除约束关系中的所有子对象。这样做的结果与在关系的关联上启用CascadeDelete属性相同。我正在使用此代码:ProductproductObj=this.ObjectContext.Product.Where(p=>p.ProductID.Equals(productID)).First();如果(!productObj.ProductCategory.IsLoaded)productObj.ProductCategory.Load();如果(!productObj.ProductDetails.IsLoaded)productObj.ProductDetails.Load();//我自己的方法.base.Delete(productObj);base.SaveAllObjectChanges();但我在ObjectContext.SaveChanges();上收到错误消息ObjectContext.SaveChanges();也就是说,正在从AssociationSet'中添加或删除关系。使用基数约束时,还必须添加或删除相应的ProductCategory。谢谢回复。我已经解决了我的问题。在EDMX中使用相同的级联。为了解释,我正在回答我自己的问题。?我们必须在SSDL部分和CSDL部分的EDMX文件中添加两部分,请参阅此问题。那里描述了一级关联的情况。如果正确设置OnDelete操作,删除所有关联的子对象应该没有问题。此外,如果您在visualstudio中查看edmx文件,则可以选择“Associate”并选择“End1OnDelete”属性并设置为“Cascade”。值得注意的是,您需要确保加载了对象才能删除它们——我启用了Cascade,但直到我加载了我需要的对象后它才有所帮助(有趣的是,我也不需要打开Cascade都在我的情况下)。我已经记录了帖子的细节,这有助于我最大程度地追查EntityFramework删除子对象的细节。以上就是C#学习教程:删除对象及其相关实体。了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: