• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    关于多对多关系表无法更新与插入的问题

    在EF里,我们设计模型时,会设计到多对多关系,在EF里会把这种关系会转成两个一对多的关系表,这是比较友好的,因为多对多来说,对于业务本身没什么意思,所以隐藏了,没什么坏处,但对于这个隐藏来说,对开发人员来讲你就无法主动控制这张关系表了,而需要使用EF的update来更新主表的同时去更新关系表,这对于初学者会出现一些问题,今天说的就是多对多关系无法更新和插入的问题.

    数据结构

    public partial class WebManageRoles : Lind.DDD.Domain.Entity
    {
    public WebManageRoles()
    {
    this.WebManageMenus = new ListWebManageMenus>();
    this.WebManageUsers = new ListWebManageUsers>();
    }
    [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 ICollectionWebManageMenus> WebManageMenus { get; set; }
    public virtual ICollectionWebManageUsers> WebManageUsers { get; set; }
    }

    关于AutoDetectChangesEnabled

    参考:https://msdn.microsoft.com/en-us/data/jj556205.aspx

    大叔的解释,当AutoDetectChangesEnabled为true时,可以加载依赖的关系,在插入和更新时会有同步完成(多对多,一对多关系时使用),当值为false时,只更新(插入)主表的数据

    问题解决

    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.
    }

    以上所述是小编给大家介绍的关于多对多关系表无法更新与插入的问题 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • 数据库修改多对多的中间表的记录的技巧
    上一篇:asp.net TreeView递归循环子节点生成树形菜单实例
    下一篇:ASP.NET中iframe框架点击左边页面链接 右边显示链接页面内容
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    关于多对多关系表无法更新与插入的问题 关于,多对,多,关系,表,无法,