Я получаю следующее сообщение об ошибке «последовательность содержит более одного элемента» при попытке заполнить мой объект таблицы повышения. Я знаю, что получаю эту ошибку, потому что мой запрос возвращает несколько значений, как и должно быть. Может ли кто-нибудь указать мне в правильном направлении, как удалить несколько записей, кроме циклов (если это возможно с EF).
основной процесс:
TBLPROMOTIONCOLLECTION promotionCollectionInfo = null;
using (webStoreEntities webStoreContext = new webStoreEntities())
{
promotionCollectionInfo = WebStoreDelegates.selectPromotionCollection.Invoke (webStoreContext).ByPromoID(promotionId).ToList().SingleOrDefault();
if (promotionCollectionInfo != null)
{
webStoreContext.DeleteObject(promotionCollectionInfo);
webStoreContext.SaveChanges();
}
}
selectPromotionCollection Делегат:
public static Func<webStoreEntities, IQueryable<TBLPROMOTIONCOLLECTION>> selectPromotionCollection =
CompiledQuery.Compile<webStoreEntities, IQueryable<TBLPROMOTIONCOLLECTION>>(
(promotion) => from c in promotion.TBLPROMOTIONCOLLECTION
select c);
Фильтр ByPromoID:
public static IQueryable<TBLPROMOTIONCOLLECTION> ByPromoID(this IQueryable<TBLPROMOTIONCOLLECTION> qry, int promotionID)
{
//Return the filtered IQueryable object
return from c in qry
where c.PROMOTION_ID == promotionID
select c;
}
FirstorDefault не решает мою проблему, так как я ожидаю кратных.
Любая помощь будет оценена.
Спасибо, Билли