2012-01-24 13 views
0

フィールドテーブル Person(フィールドName)のテーブルがあるとします。Entity Frameworkとの2つの異なるタイプの比較

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

私はstringとタイプPersonのオブジェクトを比較する必要があります意味:

私はこの速記表現を動作させるためにしようとしています。

私はEqualsをオーバーライドし、演算子==と!=をオーバーライドしようとしましたが、まだ例外が発生しています。 "DbComparisonExpressionには、比較可能な型の引数が必要です。"

Entity Frameworkで2つの異なる型を比較す​​る方法はありますか?

+0

著者にはどのような種類がありますか? –

+0

@Tomas申し訳ありませんが、その人、私はポストでそれを修正しました。 –

+0

私はあなたにも、以下の簡単な答えを、提案された解決策とともに示しました。 –

答えて

5

EFは、SQLにクエリを翻訳しようとすると、考慮されていないようだということやっている間(NameAuthorのプロパティである場合)

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

を試してみましたあなたの型変換演算子。

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

ええ、これは可能です私はこれの省略形を作ることができるかどうかを見てみましょう。 –

+0

これは 'Posts.First(p => p.Author.Name ==" blbbl ");' – WagoL

+0

@WagoL:これは間違っています。あなたのコードはWhereの代わりにFirstを使います –

1

あなたは

+0

これは確かに別のオプションですが、SQL内の文字列を比較するとp.Author.FirstName + p.Author.LastName == "SomeNameAsString"も機能します –

関連する問題