c# - 如何计算 Entity Framework 中的非原始对象列表?

标签 c# linq entity-framework-4.1

我需要计算一个对象有多少,然后存储这个数字。

我尝试了以下方法:

var order = db.Questions.Where(x => x.Owner == owner).Count();

失败并显示以下消息:

Unable to create a constant value of type 'MVCApp.Models.Owner'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.

我已将代码修改为以下内容:

var order = db.Questions.Where(x => x.Owner == owner);
int bla = 0;
foreach (var item in order)
{
    bla++;
}

我所做的似乎没有任何缺点(除了需要额外的几行代码),但是,我真的很想了解这个问题及其背后的问题。

Where 命令使对象正常运行,那么,为什么 Count 不起作用?

任何人都可以提出任何建议吗?

最佳答案

我怀疑 owner 是一个类的实例,也许是另一个实体?在这种情况下,您可能想要做的是检查外键是否与所有者 ID 相同(或者相反,这取决于您如何建立关系)。如果这是真的,那么它之前不工作的原因是它不知道如何将对象相等性转换为 SQL 表达式。它需要与定义了表达式翻译的原始类型一起工作。

var count = db.Questions.Where( x => x.OwnerID == owner.ID ).Count();

关于c# - 如何计算 Entity Framework 中的非原始对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883695/

相关文章:

c# - 如何在 C# 自动属性中返回对象的新实例

.net - 使用 DataContext.ExecuteQuery<T> 时忽略只读类属性

entity-framework-4.1 - 无法将 StoreGeneratePattern.Identity 与数据库触发器生成的主键值一起使用?

ef-code-first - 使用共享主键关联时,EF 4.1 Code First 中的级联删除规则

c# - 为什么 Scala 和 C# lambda 有双箭头?

C# Microsoft Interop Word 将形状放入表格单元格中

c# - OpenFileDialog C#,允许用户输入文件名?

c# - SQL Linq 预留可用性

c# - 根据对父项的引用将项添加到列表

entity-framework-4.1 - 找不到新的 Code First Entity Framework 数据库