select *,(case   when (select Count(*) from VOD_VodOrderItemview where 
MovieId=VOD_Movie.id and CreatorId=1)>0 then '已选' else '未选' end) as state from VOD_Movie如上面语句一样 动态增加个state的列,语句应该怎么写。
var obj = (from d in XX.VOD_Movie where .... select d);
这语句要怎么改。

解决方案 »

  1.   

    from d in XX.VOD_Movie where .... select new
    {
       D=d,
       State= VOD_VodOrderItemview.Contains(i=>i.MovieId==d.id && i.CreatorId==1)? "已选":"未选"
    }
      

  2.   

    这样不行.
    换种思路能直接传入sql语句么,如select getdate()
    任意语句都可执行?
      

  3.   

    咋不行了?
    能sql就能换成linq执行
      

  4.   

    State= VOD_VodOrderItemview.Contains(i=>i.MovieId==d.id && i.CreatorId==1)? "已选":"未选"这里的VOD_VodOrderItemview是表对象还是什么,已经存储了数据了么?
      

  5.   

    这个就是你一楼写的啊  我怎么知道这是什么  我又没你数据库
    看你上面写的 这应该是个表 并且里面的movieid应该是movie表的外键
      

  6.   

    上面算了没答案就算了
    var obj = (from d in XX.VOD_Movie where .... select d); 
    这样是出来的是 整个VOD_Movie表
    而VOD_Movie中有 列1列2列3
    我现在要这显示数列1和列2要怎么写
    var obj = (from d in XX.VOD_Movie where .... select d.列1);那列2 呢?