使用Entity Framework比较两种不同的类型

时间:2012-01-24 10:02:59

标签: c# linq entity-framework linq-to-entities

假设我有一个Posts表格,其中Owner字段为Person(其中包含字段Name)。

我正在努力使这个速记表达起作用:

from p in Posts where p.Author == "SomeNameAsString" select p;

这意味着我必须将Person类型的对象与string进行比较。

我试图覆盖Equals并覆盖运算符==和!=,但我仍然遇到异常“DbComparisonExpression需要具有可比类型的参数。”。

有没有办法在实体框架中使两种不同类型具有可比性?

2 个答案:

答案 0 :(得分:5)

EF会尝试将您的查询转换为SQL,而这样做似乎并未考虑您的类型转换运算符。只需使用此查询:

from p in Posts where p.Author.Name == "SomeNameAsString" select p;

答案 1 :(得分:1)

你试过吗

 from p in Posts where p.Author.Name == "SomeNameAsString" select p; 

(如果NameAuthor

的属性