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

2025-05-29 0 49

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

数据结构

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
public partial class WebManageRoles : Lind.DDD.Domain.Entity

{

public WebManageRoles()

{

this.WebManageMenus = new List<WebManageMenus>();

this.WebManageUsers = new List<WebManageUsers>();

}

[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> WebManageMenus { get; set; }

public virtual ICollection<WebManageUsers> WebManageUsers { get; set; }

}

关于AutoDetectChangesEnabled

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

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

问题解决

?

1

2

3

4

5

6

7
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);

在数据上下文中的设置

?

1

2

3

4

5

6

7
public ManagerContext()

: base("DefaultConnection")

{

this.Configuration.AutoDetectChangesEnabled = true;//对多对多,一对多进行curd操作时需要为true

this.Configuration.LazyLoadingEnabled = false;

this.Configuration.ProxyCreationEnabled = false;//禁止动态拦截System.Data.Entity.DynamicProxies.

}

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

原文链接:http://www.cnblogs.com/lori/archive/2016/07/27/5709887.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 关于多对多关系表无法更新与插入的问题 https://www.kuaiidc.com/100592.html

相关文章

发表评论
暂无评论