可以在Linq-to-Objects中创建新类型类吗?

时间:2012-03-23 16:45:14

标签: linq-to-entities linq-to-objects variable-assignment

要从其他对象动态创建和分配类,我通常使用LINQ。

假设我从我的数据库获取了一个IQueryable<ProductForCart>对象,由于某种原因,我需要创建一个IQuaryable<Product>,其中提取每个Product属性来自ProductForCart

我只是这样做:

IQueryable<ProductForCart> productsForCart = ProductRepository.GetProductsForCart();

IQueryable<Product> products = productsForCart.Select(sc => new Product
                                              {
                                                 ProdId = sc.ProdId,
                                                 ProdName = sc.ProdName,
                                                 //other properties
                                              }

这很顺利。但是,如果我有IList<ProductForCart>IList<Product>,则会抛出运行时异常:

此功能只能从LINQ到实体调用。

我不知道LinqToObjects不支持这种分配。或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

您无法在Linq-to-Objects查询中使用SQLFunctionsEntityFunctions

您需要使用等效的.net方法替换这些函数