visual studio 2010 - EF4.1在一台机器上出现错误,而在另一台机器上没有



我在一台PC上得到这个错误,但在另一台PC上没有。两者都连接到本地SQLExpress 2008 R2数据库,该数据库在两台机器上是相同的。两台机器都有VS2010 SP1和EF4.1(包含在工具更新中)。这是一个运行在卡西尼上的mvc Web应用程序项目:

[NotSupportedException:无法创建类型为'System.Collections.Generic.IEnumerable ' 1'的常量值。]在此上下文中只支持基本类型(如Int32, String和Guid)。]

我怎么也弄不明白为什么会这样——它发生在下面的Attach():

IQueryable<Tag> tags = db.Tags.Where(x => !tagIds.Contains(x.Id) && x.Questions.Any(y => y.Id == question.Id));
question.Tags.Attach(tags);

我能想到的唯一区别是一台机器是32位的,另一台是64位的,但我不知道如何确定这是否是由于任何原因造成的问题。

任何想法?

TIA

问题的根源在于x => !tagIds.Contains(x.Id),因为"Contains"不能通过EF转换为T-SQL。尝试搜索异常以获取更多信息。

两个本地数据库中的数据不相同,这意味着tagIds在一台机器上返回null,而在另一台机器上返回null。错误信息不是很有用,但这就是导致它的原因。

在此场景中使用Contains在EF4中是可以的。

相关内容

  • 没有找到相关文章

最新更新