首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

这两句sql能用linq写出来吗,该怎么解决

2013-09-08 
这两句sql能用linq写出来吗DELETE d FROM Plan a inner JOIN dbo.Contract c ON a.IDc.ID INNER JOIN dbo

这两句sql能用linq写出来吗
DELETE d FROM Plan a inner JOIN dbo.Contract c ON a.ID=c.ID INNER JOIN dbo.ContractSub d ON c.SupID=d.ID WHERE c.MType=3 AND a.ID=" + aid

 UPDATE d SET d.Pay=c.MPay FROM Plan a inner JOIN dbo.ContractDraft c ON a.ID=c.AID INNER JOIN dbo.ContractSub d ON c.SupID=d.ID WHERE c.MT=2 AND a.ID=" + aid linq
[解决办法]

var plan = (from a in db.Plan
             join c in db.Contract
             on a.ID equals c.ID
             join d in db.ContractSub
             on c.SupID equals d.ID
             where c.MType==3 && a.ID==aid
             select a)
             .Take(1)
             .FirstOrDefault();
if(result != null)
{
     db.Plan.DeleteObject(plan);
     db.SaveChanges();
}


更新类似
[解决办法]
只能先查出来,再更新/删除,LINQ不支持update delete关键字。
第二句如果查出来的不止一条数据,可以最后一次性调用SaveChanges。
[解决办法]
var query=from a in Plan
          join c in Contract  on a.ID equlas c.ID
          join d in ContractSub  on c.SupID equlas d.ID
          where c.MType==3 && a.ID==aid


          select d;

db.ContractSub.DeleteAllOnSubmit(query);
db.SubmitChanges();



更新类似
[解决办法]
引用:
我这个都是同时操作多条数据,我是用linq执行sql解决的  但是我不知道linq该怎么写

联合查出  遍历修改吗

那个删除问题  分两步吗   先查出来id   在查询删除记录进行删除吧


我是这么想的不知道对不对


关于DeleteAllOnSubmit,参考此帖我在19楼的解释:
http://bbs.csdn.net/topics/390535173

热点排行