linq to EF怎么实现in和left join效果。

时间:2022-09-18 08:50:02
linq to EF怎么实现in和left join效果。

备注:linq to EF有区别于linq to sql
不能用 string[].Contains,会报异常(而且我这个是做为条件传进来的,也就是数组不知道是多少个items)

我两个表没有建外键,而且好像linq to EF也不支持DefaultIfEmpty来实现left join。

参考支持方法: http://msdn.microsoft.com/en-us/library/bb738638.aspx

我在想,要是什么都不支持,我用它干个屁啊。。

欢迎指教

30 个解决方案

#1


linq to EF怎么实现in和left join效果。jf

#2


linq一向都不怎么好用,特别是调试的时候。

#3


无法创建类型为“结束类型”的常量值。此上下文仅支持基元类型(“例如 Int32、String 和 Guid”)。

#4


很少用过linq

#5


该回复于2010-08-13 17:02:37被版主删除

#6


引用 5 楼 ch_weni 的回复:
友情帮顶


啥友情?

#7


友情帮顶。。。。
俺帮你顶  你给俺加点分  互帮互助  友情第一。。。 linq to EF怎么实现in和left join效果。
还没用过linq。。。。。。。

#8


友情帮顶,确实没用过那个。

#9


没接触过linq,

  帮你顶先~~~

#10


linq to EF怎么实现in和left join效果。

#11


不明白!!

#12


linq to EF怎么实现in和left join效果。
LinQ只懂一点点

#13


没接触过linq.
  帮顶!!!

#14


linq to EF怎么实现in和left join效果。

#15


帮顶!顺便接个分!

#16


var query = from d in edm.Order_Details 
                  join order in edm.Orders 
                  on d.OrderID equals order.OrderID 
                  select new 
                    { 
                        OrderId = order.OrderID, 
                        ProductId = d.ProductID
                    };
LINQ to Entities "In" 

#17


其实linq to sql类建好了,关系模型搭好 你就可以不用掌握复杂的LIQN语法。
也可以快速上手
访问起来非常迅速,程序中都不用写 join之类的语法


misoshu = rw.MiaoShu;
jierenwuid = rw.USER.Name;
farenwuid = rw.quest.USER.Name;
mokuai = rw.quest.MODE.MoKuai; 

linq to EF怎么实现in和left join效果。

#18


没接触过,,,,,,,,,,,,,,,

友情绑定,,,,,,,,,,,,,,,,,,,,,,,

#19


该回复于2010-08-14 09:37:58被版主删除

#20


linq只是瞟了一眼

#21


说它不好用是因为还不够了解它

#22


第一个:Contains没有问题,我就这样用,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Where(p=>(from s in db.Sales select s.ProductId).Contains(p.ProductId));
}

第二个问题:用Include,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Include("Category").ToList();
}

还要不懂的,google即可,不用求人

#23


left outer 



        List<TechnicalGuideModelObj> x = (from z in _list
                                          join j in db.drawings
                                          on z.NTK_No equals j.NTK_No into k

                                          join i in db.photos
                                          on z.NTK_No equals i.NTK_No into l

                                          from j in k.DefaultIfEmpty()
                                          from i in l.DefaultIfEmpty()
                                          select new TechnicalGuideModelObj(z)

#24


引用 22 楼 webdiyer 的回复:
第一个:Contains没有问题,我就这样用,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Where(p=>(from s in db.Sales select s.ProductId).Contains(p.ProductId));
}

第二个问题:用Include,比如:
usin……


我的怎么报错。。。我的是直接传一个string[]数组不行啊。。

第二个,没有建外键好像是不行的啊。。

#25


你给的那篇msdn文章已经过时了。

参考这个吧
http://msdn.microsoft.com/en-us/library/bb738550.aspx

#26


引用 17 楼 x363961461 的回复:
其实linq to sql类建好了,关系模型搭好 你就可以不用掌握复杂的LIQN语法。
也可以快速上手
访问起来非常迅速,程序中都不用写 join之类的语法


C# code

misoshu = rw.MiaoShu;
jierenwuid = rw.USER.Name;
farenwuid = rw.quest.USER.Name;
mokuai = rw.quest.M……


访问起来非常之快 对这句表示质疑,都知道LINQ是通过对底层的数据访问容器进行了类型封装,再快也绝对快不过最底层的数据访问容器。当然,LINQ在大多数应用中,性能还是可以接受的,毕竟方便,让BLL层的开发人员更加方便,甚至不需要去深究数据库的结构

#27


left join 可以用 DefaultIfEmpty实现 .

#28


支持楼主。

#29


up,没解决啊。。谁帮忙看下24楼的。

#30


引用 24 楼 mm510 的回复:
我的怎么报错。。。我的是直接传一个string[]数组不行啊。。

第二个,没有建外键好像是不行的啊。。

什么错?代码呢?
用join肯定要有外键的,没有当然不行

#1


linq to EF怎么实现in和left join效果。jf

#2


linq一向都不怎么好用,特别是调试的时候。

#3


无法创建类型为“结束类型”的常量值。此上下文仅支持基元类型(“例如 Int32、String 和 Guid”)。

#4


很少用过linq

#5


该回复于2010-08-13 17:02:37被版主删除

#6


引用 5 楼 ch_weni 的回复:
友情帮顶


啥友情?

#7


友情帮顶。。。。
俺帮你顶  你给俺加点分  互帮互助  友情第一。。。 linq to EF怎么实现in和left join效果。
还没用过linq。。。。。。。

#8


友情帮顶,确实没用过那个。

#9


没接触过linq,

  帮你顶先~~~

#10


linq to EF怎么实现in和left join效果。

#11


不明白!!

#12


linq to EF怎么实现in和left join效果。
LinQ只懂一点点

#13


没接触过linq.
  帮顶!!!

#14


linq to EF怎么实现in和left join效果。

#15


帮顶!顺便接个分!

#16


var query = from d in edm.Order_Details 
                  join order in edm.Orders 
                  on d.OrderID equals order.OrderID 
                  select new 
                    { 
                        OrderId = order.OrderID, 
                        ProductId = d.ProductID
                    };
LINQ to Entities "In" 

#17


其实linq to sql类建好了,关系模型搭好 你就可以不用掌握复杂的LIQN语法。
也可以快速上手
访问起来非常迅速,程序中都不用写 join之类的语法


misoshu = rw.MiaoShu;
jierenwuid = rw.USER.Name;
farenwuid = rw.quest.USER.Name;
mokuai = rw.quest.MODE.MoKuai; 

linq to EF怎么实现in和left join效果。

#18


没接触过,,,,,,,,,,,,,,,

友情绑定,,,,,,,,,,,,,,,,,,,,,,,

#19


该回复于2010-08-14 09:37:58被版主删除

#20


linq只是瞟了一眼

#21


说它不好用是因为还不够了解它

#22


第一个:Contains没有问题,我就这样用,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Where(p=>(from s in db.Sales select s.ProductId).Contains(p.ProductId));
}

第二个问题:用Include,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Include("Category").ToList();
}

还要不懂的,google即可,不用求人

#23


left outer 



        List<TechnicalGuideModelObj> x = (from z in _list
                                          join j in db.drawings
                                          on z.NTK_No equals j.NTK_No into k

                                          join i in db.photos
                                          on z.NTK_No equals i.NTK_No into l

                                          from j in k.DefaultIfEmpty()
                                          from i in l.DefaultIfEmpty()
                                          select new TechnicalGuideModelObj(z)

#24


引用 22 楼 webdiyer 的回复:
第一个:Contains没有问题,我就这样用,比如:
using(var db=new MyDataEntities()){
List<Product> prods=db.Products.Where(p=>(from s in db.Sales select s.ProductId).Contains(p.ProductId));
}

第二个问题:用Include,比如:
usin……


我的怎么报错。。。我的是直接传一个string[]数组不行啊。。

第二个,没有建外键好像是不行的啊。。

#25


你给的那篇msdn文章已经过时了。

参考这个吧
http://msdn.microsoft.com/en-us/library/bb738550.aspx

#26


引用 17 楼 x363961461 的回复:
其实linq to sql类建好了,关系模型搭好 你就可以不用掌握复杂的LIQN语法。
也可以快速上手
访问起来非常迅速,程序中都不用写 join之类的语法


C# code

misoshu = rw.MiaoShu;
jierenwuid = rw.USER.Name;
farenwuid = rw.quest.USER.Name;
mokuai = rw.quest.M……


访问起来非常之快 对这句表示质疑,都知道LINQ是通过对底层的数据访问容器进行了类型封装,再快也绝对快不过最底层的数据访问容器。当然,LINQ在大多数应用中,性能还是可以接受的,毕竟方便,让BLL层的开发人员更加方便,甚至不需要去深究数据库的结构

#27


left join 可以用 DefaultIfEmpty实现 .

#28


支持楼主。

#29


up,没解决啊。。谁帮忙看下24楼的。

#30


引用 24 楼 mm510 的回复:
我的怎么报错。。。我的是直接传一个string[]数组不行啊。。

第二个,没有建外键好像是不行的啊。。

什么错?代码呢?
用join肯定要有外键的,没有当然不行