這段代碼不斷髮出此錯誤。 :錯誤:在此上下文中僅支持基元類型或枚舉類型EF
Unable to create a constant value of type 'Repository.DBModel.Subscriber'. Only primitive types or enumeration types are supported in this context.
我已經改變了它幾次,但它一直想出這個錯誤。
using (SubscriberDBHandler db = new SubscriberDBHandler())
{
IEnumerable <Subscriber> NewSubscribers = Subscribers
.Where(sub => db.Subscriber
.Any(aSub => !aSub.Email.Equals(sub.Email)));
List<Subscriber> updateSubscribers = db.Subscriber
.Where(dbSub => Subscribers
.Any(lSub => lSub.Email
.Equals(dbSub.Email))).ToList();
if(NewSubscribers.Count() >= 1)
{
db.Subscriber.AddRange(NewSubscribers);
}
updateSubscribers.ForEach(aSub => aSub.State = Subscribers
.FirstOrDefault(sub => sub.Email
.Equals(aSub.Email)).State ?? "Error");
db.SaveChanges();
}
我非常感謝,如果有人能指出我的錯誤或想出一個更有效的方法來做到這一點。
提前感謝您的時間和幫助。
我知道有幾個帖子出現這個錯誤,但是當他們閱讀時我無法弄清楚他們與我的問題有何關係。所以我很抱歉,如果這是一個常見的錯誤和其他人提供瞭解決方案
對象認購是List<Subscriber>
我似乎沒有能夠找到行,但。堆棧跟蹤確實包含了這一點。
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source) at Repository.SubScribRepository.AddOrUpdateSubscribers(List
1 Subscribers)
你好,請放一點精力格式化你的代碼(正確縮進等),刪除註釋掉的代碼,並讓我們知道錯誤發生在哪一行。 – 2015-02-09 09:02:23
這個對象是什麼類型的「訂閱者」?或者請發佈實體模型。 – 2015-02-09 09:04:46