Для создания и назначения классов на лету из других объектов я обычно использую 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 to Entities.
Я не знал, что LinqToObjects не поддерживает такого рода назначения. Или я что-то упустил?