扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如何解决多对多关系表无法更新与插入的问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司专注于企业成都全网营销推广、网站重做改版、桦甸网站定制设计、自适应品牌网站建设、html5、成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为桦甸等各大城市提供网站开发制作服务。在EF里,我们设计模型时,会设计到多对多关系,在EF里会把这种关系会转成两个一对多的关系表,这是比较友好的,因为多对多来说,对于业务本身没什么意思,所以隐藏了,没什么坏处,但对于这个隐藏来说,对开发人员来讲你就无法主动控制这张关系表了,而需要使用EF的update来更新主表的同时去更新关系表,这对于初学者会出现一些问题,今天说的就是多对多关系无法更新和插入的问题。
数据结构
public partial class WebManageRoles : Lind.DDD.Domain.Entity { public WebManageRoles() { this.WebManageMenus = new List(); this.WebManageUsers = new List (); } [DisplayName("名称"), Required] public string RoleName { get; set; } [DisplayName("关于")] public string About { get; set; } [DisplayName("排序"), Required] public int SortNumber { get; set; } [DisplayName("最后操作人")] public string Operator { get; set; } [DisplayName("权限"), Required] public int OperatorAuthority { get; set; } [DisplayName("部门"), Required] public int DepartmentID { get; set; } public virtual WebDepartments WebDepartments { get; set; } public virtual ICollection WebManageMenus { get; set; } public virtual ICollection WebManageUsers { get; set; } }
关于AutoDetectChangesEnabled
参考:/tupian/20230522/>old.WebManageMenus = menuRepository.GetModel(i => menu.Contains(i.Id)).ToList(); old.DepartmentID = dept; old.RoleName = entity.RoleName; old.SortNumber = entity.SortNumber; old.About = entity.About; old.DataUpdateDateTime = DateTime.Now; roleRepository.Update(old);
在数据上下文中的设置
public ManagerContext() : base("DefaultConnection") { this.Configuration.AutoDetectChangesEnabled = true;//对多对多,一对多进行curd操作时需要为true this.Configuration.LazyLoadingEnabled = false; this.Configuration.ProxyCreationEnabled = false;//禁止动态拦截System.Data.Entity.DynamicProxies. }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联网站建设公司,的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流