我是.Net(和stackoverflow)的新手,所以我遇到了一些问题。一个棘手的问题是下面的linq查询。有关代码的一些信息。 CustomerCart是我项目中的一个单独的Model类,其中products成员是产品列表。如果我从选择的新CustomerCart部分中删除产品,它运行正常并且数据存在。所以我认为这是我的语法。我不能在赋值构造函数中放置一个linq语句吗?任何帮助都会很有意义。提前谢谢。
var k = from s in store.Customers
join p in store.ShoppingCarts on s.custId equals p.customerId
select new CustomerCart()
{
FirstName = s.firstName,
LastName = s.lastName,
products = (from j in store.Products
where p.productId == j.productId
select j).ToList(),
CartID = p.cartId,
CustomerID = s.custId,
};
**编辑 我收到的错误:传入字典的模型项的类型是' System.Data.Objects.ObjectQuery`1 [productShop.Models.CustomerCart]',但是这个字典需要一个类型&#的模型项39; productShop.Models.CustomerCart'
很抱歉没有在我的问题中放置错误消息。
答案 0 :(得分:0)
请尝试此查询:
var k =
from s in store.Customers
join p in store.ShoppingCarts on s.custId equals p.customerId
join j in store.Products on p.productId equals j.productId into products
select new CustomerCart()
{
FirstName = s.firstName,
LastName = s.lastName,
products,
CartID = p.cartId,
CustomerID = s.custId,
};