【发布时间】:2015-02-09 09:01:05
【问题描述】:
这段代码一直在犯这个错误。 :
无法创建“Repository.DBModel.Subscriber”类型的常量值。此上下文仅支持原始类型或枚举类型。
我已经更改了几次,但一直出现此错误。
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>
我似乎无法找到线路但是。堆栈跟踪确实包含这个。
在 System.Linq.Enumerable.ToList[TSource](IEnumerable
1 source) at Repository.SubScribRepository.AddOrUpdateSubscribers(List1 订阅者)
【问题讨论】:
-
您好,请在格式化您的代码(适当的缩进等)、删除注释掉的代码并让我们知道错误发生在哪一行。
-
这个对象“订阅者”是什么类型的?或者请发布实体模型。
标签: c# entity-framework lambda