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

MM510 2010-08-13 03:18:24
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

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

欢迎指教
...全文
1866 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 mm510 的回复:]
我的怎么报错。。。我的是直接传一个string[]数组不行啊。。

第二个,没有建外键好像是不行的啊。。
[/Quote]
什么错?代码呢?
用join肯定要有外键的,没有当然不行
MM510 2010-08-16
  • 打赏
  • 举报
回复
up,没解决啊。。谁帮忙看下24楼的。
MM510 2010-08-15
  • 打赏
  • 举报
回复
支持楼主。
  • 打赏
  • 举报
回复
[Quote=引用 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……
[/Quote]

访问起来非常之快 对这句表示质疑,都知道LINQ是通过对底层的数据访问容器进行了类型封装,再快也绝对快不过最底层的数据访问容器。当然,LINQ在大多数应用中,性能还是可以接受的,毕竟方便,让BLL层的开发人员更加方便,甚至不需要去深究数据库的结构
owenxin26 2010-08-14
  • 打赏
  • 举报
回复
你给的那篇msdn文章已经过时了。

参考这个吧
http://msdn.microsoft.com/en-us/library/bb738550.aspx
bancxc 2010-08-14
  • 打赏
  • 举报
回复
left join 可以用 DefaultIfEmpty实现 .
MM510 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 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……
[/Quote]

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

第二个,没有建外键好像是不行的啊。。
yajun_snow 2010-08-13
  • 打赏
  • 举报
回复
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)
webdiyer 2010-08-13
  • 打赏
  • 举报
回复
第一个: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即可,不用求人
wisdonlz 2010-08-13
  • 打赏
  • 举报
回复
说它不好用是因为还不够了解它
studentliudong 2010-08-13
  • 打赏
  • 举报
回复
linq只是瞟了一眼
loveyan924 2010-08-13
  • 打赏
  • 举报
回复
没接触过,,,,,,,,,,,,,,,

友情绑定,,,,,,,,,,,,,,,,,,,,,,,
x363961461 2010-08-13
  • 打赏
  • 举报
回复
其实linq to sql类建好了,关系模型搭好 你就可以不用掌握复杂的LIQN语法。
也可以快速上手
访问起来非常迅速,程序中都不用写 join之类的语法


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

wuyq11 2010-08-13
  • 打赏
  • 举报
回复
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"
米娜Rose 2010-08-13
  • 打赏
  • 举报
回复
帮顶!顺便接个分!
Aquarius娜吖 2010-08-13
  • 打赏
  • 举报
回复
没接触过linq.
帮顶!!!
zhubo006 2010-08-13
  • 打赏
  • 举报
回复
Peter200694013 2010-08-13
  • 打赏
  • 举报
回复

LinQ只懂一点点
xinv19shi 2010-08-13
  • 打赏
  • 举报
回复
不明白!!
jrl5365 2010-08-13
  • 打赏
  • 举报
回复
加载更多回复(8)

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧