在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
相关文章
猜你喜欢
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
如何在 Linux 中查找映射到 VxVM 磁盘的 SAN LUN
2025-05-27 102 -
企业网站云服务器租赁:VPS主机、独立服务器与网络安全保障方案
2025-06-04 44 -
2025-05-27 92
-
2025-05-27 59
-
2025-06-04 53
热门评论