EF改动关系让我费事蛮多时间。能查的资料少,网上试了非常多方法都不正确。

最后还是自己研究出来了。在这里和大家分享下,有更好的方法也能够分享下。

首先说说我一般做改动功能时,前台传參数,后台使用对象接收,然后使用实体包括,改动策略,提交数据库就可以。(之前应该有文章说过)

可是涉及到关系时,又一次赋值后,内存能够改变,但没有更新数据库。

试了非常多办法。開始以为是配置的问题。一直找相关的内容。都没效果。

以下分享下实现过程:

1、前台传參。

EditID,Name,NewRole

2、后台接收。

User user。注意接收时,避免EditID和实体ID名字同样,避免实体反复。

接收并处理好Role对象。

3、处理数据。

User u=db.Users.Find(EditID);//从数据库查出实体

u.Name=...//给各属性赋值

u.Roles.Clear();//清理角色,这个为啥我也不清楚。

没有的话。正常执行会报错。可是调试不报错,非常奇怪。这个我也是自己试出来的。

u.Roles=NewRole;//给角色赋值。

4、提交数据库就可以。

db.SaveChanges();

简单的说原理,就是改动关系,必须得是从数据库查出的实体,感觉凭技术。EF应该是能够实现的。

有其它方法的朋友能够分享下。

最新文章

  1. Enterprise Solution 生成实体数据访问接口与实现类型 Code Smith 6.5 模板文件下载
  2. Bootstrap的学习
  3. Play Framework 第一个应用
  4. c#excel的操作例子
  5. JAVA Day3
  6. iOS 日期处理 (Swift3.0 NSDate)
  7. Sublime Text3注册码 (备用)
  8. Bitmap recycle()
  9. 第13章 Linux的网络管理
  10. EasyWcf------无需配置,无需引用,动态绑定,轻松使用
  11. EF的Join()和Include()差异性教程
  12. Mysql5.8解压版安装问题:TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS
  13. 第一个Spring程序HelloWorld
  14. Fedora-Workstation-netinst-x86_64-27-1.6系统之无法使用中文解决办法
  15. python 线程(其他方法,队列,线程池,协程 greenlet模块 gevent模块)
  16. 通过$broadcast或$emit在子级和父级controller之间进行值传递
  17. bootstrap添加遮罩层loadingmask
  18. python 机器学习中模型评估和调参
  19. GYM 101173 F.Free Figurines(贪心||并查集)
  20. ng之自定义指令

热门文章

  1. 使用命名方式使用django的url模式
  2. flash 遮住 div 解决办法
  3. BZOJ 2406 二分+有上下界的网络流判定
  4. http接口 两种调用http接口的方法
  5. python--6、re模块
  6. Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader......couldn't find "libweibosdkcore.so
  7. electron 学习
  8. WEB笔记-3、盒子模型+定位+显示
  9. 实验0 安装GLUT包及工程的创建与运行
  10. EF CodeFirst 基础命令