容斥原理及SQL in关键字在EF中的应用
2018-06-22 07:46:06来源:未知 阅读 ()
突然意识到文字的重要性,于是开始写了第一个篇博客,博客目的紧紧为记录,以便温故。
同时也希望抛砖能达到引玉的作用,欢迎各位来发表自己的感想与想法,以此达到相互学习促进!
背景:
在做百度地图电子围栏的时候,一条围栏内包含人员的设置是直接通过更新围栏表(Fence)内FenceUser字段(数据格式:1,3,7)来实现的,同时更新User表对应ID(1,3,7)的是否设置电子围栏的标识FenceFlag(0 or 1)
所以需要比较前台传过来的对应ID值和数据库中ID对应值的非公有部分再去统一把User表的FenceFlag标记取反
1 DBConn db = new DBConn(); 2 var fencelist = (from b in db.Fence.AsNoTracking() where b.fenceId == fenceID select b).ToList(); 3 string fenceusers = fencelist[0].fenceUsers; 4 string[] users = fenceusers.Split(','); 5 string[] arraymembers = ArraymembersToid.Split(','); 6 var listTemp = users.Concat(arraymembers).Except(users.Intersect(arraymembers)).ToList(); 7 var list = listTemp.Select<string, int>(q => Convert.ToInt32(q)); 8 var userFenceFlag = db.Users.Where(p => list.Any(a => a.Equals(p.id))).ToList(); 9 if (userFenceFlag.Count > 0) 10 { 11 foreach (Users user in userFenceFlag) 12 { 13 user.FenceFlag = -(user.FenceFlag - 1); 14 } 15 db.SaveChanges(); 16 17 }
关键字:
集合
Intersect:交集
Except:差集(A差B指的是A中与B中的不同而非AB全部的不同)
Concat:合集(AB全部值,包含重复)
EF
Any:类似于SQL中的IN
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- SqlDataReader指定转换无效的解决方法 2020-03-23
- 让Sqlite脱离VC++ Runtime独立运行的方法 2020-03-03
- 深入浅析.NET应用程序SQL注入 2020-02-23
- 如何在C#中使用SQLite数据库 2019-08-26
- 【转载】如何查看sqlserver客户端的版本号信息 2019-07-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash