要从其他对象动态创建和分配类,我通常使用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不支持这种分配。或者我错过了什么?