Я сталкиваюсь с некоторыми проблемами при построении запроса с использованием LINQ и Entity Framework.
Моя модель такая
Merchants(MerchantId)
AffiliateFeeds(AffiliateFeedId, MerchantId)
ProductSKUs(ProductId, AffiliateFeedId)
Этот фрагмент работает достаточно хорошо:
// only get Merchants and AffiliateFeeds based on specific ProductSKU.ProductId
var productSKUs = from ps in _context.ProductSKUs
where ps.ProductId == 38
select ps.AffiliateFeedId;
var feeds = from af in _context.AffiliateFeeds
where productSKUs.Contains(af.AffiliateFeedId)
select af;
var dm = (from f in feeds select f.MerchantId).Distinct();
var merchants = from m in _context.Merchants
where dm.Contains(m.MerchantId)
select new
{
MerchantId = m.MerchantId,
Name = m.Name,
SysName = m.SysName,
DataFeedUrl = m.DataFeedUrl,
AffiliateFeeds = feeds.Where(x => x.MerchantId == m.MerchantId)
};
Однако, когда я пытаюсь выполнить проекцию в сгенерированный класс Entity Framework, называемый Merchant, так:
var merchants = from m in _context.Merchants
where dm.Contains(m.MerchantId)
select new Merchant
{
MerchantId = m.MerchantId,
Name = m.Name,
SysName = m.SysName,
DataFeedUrl = m.DataFeedUrl,
AffiliateFeeds = feeds.Where(x => x.MerchantId == m.MerchantId)
};
Я получаю сообщение об ошибке:
Невозможно неявно преобразовать тип
'System.Linq.IQueryable'
в
'System.Data.Objects.DataClasses.EntityCollection'