當試圖填充我的促銷表對象時,我收到以下錯誤「序列包含多個元素」。我知道我收到這個錯誤,因爲我的查詢返回多個值,因爲它應該。任何人都可以指出我正確的方向,除了循環以外如何刪除多個記錄(如果可能的話使用EF)。序列包含多個元素
主要PROC:
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不解決我的問題。 任何幫助,將不勝感激。
謝謝,比利
你能請精煉您的問題。基本上你是問你爲什麼得到「序列包含多個元素」的錯誤,或者你問如何在EF中一次刪除多個對象? - PS如果你問如何批量刪除EF中的項目沒有循環我認爲答案是,你不能。 ObjectContext只有一個DeleteObject(對象實體)方法,並且缺少一個DeleteAllObjects或類似的方法。 – 2009-10-12 20:48:58
問如何解決我得到的錯誤,因爲我需要刪除倍數。猜你回答了我的問題。可能只是去SP路線。謝謝。 – 2009-10-12 20:53:24