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

Mat*_*ský 0 c# linq linq-to-entities entity-framework

假设我有一个Posts包含字段Owner类型的表Person(有字段Name).

我正在尝试使这个速记表达式工作:

from p in Posts where p.Author == "SomeNameAsString" select p;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dan*_*rth 5

EF尝试将您的查询转换为SQL,并且在执行此操作时似乎没有考虑您的类型转换运算符.只需使用此查询:

from p in Posts where p.Author.Name == "SomeNameAsString" select p;
Run Code Online (Sandbox Code Playgroud)