关于多对多关系表无法更新与插入的问题
接下来,让我们看一个实际的问题解决例子。假设我们在更新WebManageRoles实体时遇到了困难。我们可以使用如下代码尝试解决问题:
我们需要获取旧的WebManageMenus列表:
```csharp
old.WebManageMenus = menuRepository.GetModel(i => menu.Contains(i.Id)).ToList();
```
然后,更新其他需要的字段:
```csharp
old.DepartmentID = dept;
old.RoleName = entity.RoleName;
old.SortNumber = entity.SortNumber;
old.About = entity.About;
old.DataUpdateDateTime = DateTime.Now;
```
使用EF的Update方法更新主表及其关联表:
```csharp
roleRepository.Update(old);
```
在这个过程中,我们需要在数据上下文中正确设置AutoDetectChangesEnabled属性。在ManagerContext的构造函数中,我们需要确保它的值为true:
```csharp
public ManagerContext()
: base("DefaultConnection")
{
this.Configuration.AutoDetectChangesEnabled = true; // 对多对多,一对多进行curd操作时需要为true
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false; // 禁止动态拦截System.Data.Entity.DynamicProxies。
}
```
编程语言
- 关于多对多关系表无法更新与插入的问题
- SQLServer 循环批处理
- JQuery实现可直接编辑的表格
- Laravel实现自定义错误输出内容的方法
- js数字舍入误差以及解决方法(必看篇)
- AngularJS表单基本操作
- vue mounted 调用两次的完美解决办法
- JS控制按钮10秒钟后可用的方法
- php去除二维数组的重复项方法
- Ajax无刷新Url提交页面
- Sqlserver timestamp数据类使用介绍
- PHP中类的继承和用法实例分析
- 编程经验点滴 动态SQL的拼接技巧
- jQuery为DOM动态追加事件的方法
- 使用JScript遍历Request表单参数集合
- JS实现把鼠标放到链接上出现滚动文字的方法