我正在学习LINQ并试图使用交叉连接,我得到这个错误:连接子句中的一个表达式的类型是不正确的
在交叉连接中不能使用GetCategories()吗?这个请求在main中,但是函数在main之外。
var q = from c in GetCategories()
join p in GetProducts() on c equals p.CategoryID
where c.Name = "Beverages"
select new { ID = c, p.Name };
方法签名:
public static IEnumerable<Category> GetCategories()
List<Category> categories = new List<Category>( );
categories.Add( new Category { ID = 1, Name = "Beverages" } );
public static IEnumerable<Product> GetProducts()
List<Product> products = new List<Product>( );
products.Add( new Product { Name = "Milk", Price = 90, CategoryID = 4, ID = 1 } );
您需要指定要连接的Category
类中的哪个字段。最可能的ID
:
from c in GetCategories()
join p in GetProducts() on c.ID equals p.CategoryID
where c.Name == "Beverages"
select new { ID = c.ID, p.Name };