日期:2014-05-20  浏览次数:20825 次

linq直接执行 sql有没么坏处
为什么不都用linq直接执行sql。

 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(); 

这个批量删除的db是什么
需要添加 using (NorthwindDataContext dc = new NorthwindDataContext())这个吗

这个添加进去又说缺少引用命名空间。
希望得到详解  谢谢了
linq

------解决方案--------------------
Plan Contract ContractSub
从哪里来的。
------解决方案--------------------
为什么不都用linq直接执行sql。
因为linq是和数据库无关的,而sql虽然说的统一的,但每个数据库都有自己的特定函数什么的
你一旦使用了sql就说明和某个数据库绑在一起了,当然我们做项目是很少换数据库的~
再说现在已经进入了DDD 领域驱动设计什么的 数据库也有nosql数据库,所以sql也许以后被淘汰吧
但现在,为了效率,非要用sql不可的时候,那就用吧

另外经验所以,最好不要物理删除,在表中添加一个IsDeleted字段什么的,来标记这条数据已经删除了就好


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