日期:2014-05-20 浏览次数:21026 次
var query=from u in en.Products select u.OrderLine.Orders.UserName
------解决方案--------------------
Orderline 不要使用联合主键
用这样的结构:
Id <PK>
ProductID <FK>
OrderID <FK>
var query=from ol in OrderLine join o in Orders on ol.OrderID equals o.OrderID into left1 from o in left1.DefalutIfEmpty() join p in Products on ol.ProductID equlas p.ProductID into left2 from p in left2.DefalutIfEmpty() where p.price<80 select o==null?"":o.UserName;
------解决方案--------------------
下面的代码OrderItems相当于你的OrderLine. Where你可以自行修改。
OrderItems 也被映射进来了。
var query = from oi in context.OrderItems join o in context.Orders on oi.OrderId equals o.OrderId join p in context.Products on oi.ProductId equals p.ProductId where p.ProductId == 310 select o;
------解决方案--------------------
视图,存储过程。EF都支持导入。
你这个查询是不是有关系?
order,product与orderitems(你的orderline)都是左链接?
那也就意味着,用户下的订单里有可能出现一件你网站上根本就不存在的商品。
这样的数据完整吗?
------解决方案--------------------
最好还是有一个OrderLineID,作为Primary Key吧。
------解决方案--------------------
多对多肯定要用中间表的。