EFコアNullable IDでブレークを検索

.net-core asp.net-core-mvc asp.net-mvc entity-framework-core

質問

MacでEF Core 1.1Asp Core 1.1を使用する

のようなモデルで

public class Model {
  public int? Id { get; set; }
  public string OtherProp { get; set; }
}

そして行動

public class ModelController
{
    public Model Get(int? id) 
    {
      DbContext.Set<Model>.Find(id)
    }
}

url /model/10へのアクセスはメッセージで失敗The key value at position 0 of the call to 'DbSet<Model>.Find' was of type 'int', which does not match the property type of 'Nullable<int>'

エラーメッセージはクリアですが、私の質問は、この作業を行う方法があれば、それは非常に一般的な使用例のようであり、以前のバージョンで動作していたようです。

idint?キャストしようとしましたint?しかしそれはうまくいかなかった。何か案は?

また、有用な場合にはこれはEFで壊れている行です

人気のある回答

すでにリンクしているコードを見ると、これは機能しません。これは、CLRがヌル可能なインスタンスの基本タイプを常に提供するためです。 (理由は分かりませんが、これまでに同様の問題があった...)

コードでは: typeof(int?) != ((int?)1).GetType()

したがって、プロパティの型( int? )と引数の型の比較は常に失敗します。 EFコアチームにヌル可能なタイプのサポートを追加するよう依頼する必要があります。

関連: Nullable型はnull可能型ではありませんか?



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ