6

私はエンティティSQLクエリを持つパラメータnullの場合は、System.ArgumentNullExceptionが返されます。だから私も名前がnullだった場合DBNull.Valueのを使用しよう、と私は次の例外を取得:Entity Frameworkの4.0エンティティSQL渡すヌルObjectParameterは

System.ArgumentOutOfRangeExceptionがが
メッセージは、指定された パラメータタイプを=キャッチされた「System.DBNull」 ではありません有効です。 System.Int32、System.Decimal、 、System.DateTime、System.Guidなどのスカラー型のみがサポートされています( )。

null値も可能なパラメータ値であるパラメータ化クエリを使用したいと考えています。 Entity SQLでこれをどのように達成できますか?

答えて

10

あなたは正しいですが、ObjectParameterコンストラクタのバグのようです。 しかし、Valueプロパティはnull値を受け入れているようです。あなたが直接、Valueパラメーターを割り当てた場合、コードが動作しているよう

var prm = new ObjectParameter("p", typeof(string)); 
prm.Value = name; 

var results = context.CreateQuery<WorkflowInstance>(
    query, prm).ToList(); 

: を使用してコードを置き換えるようにしてください。

はDavide

1

ニースポストはDavide、Iは、整数値を渡すために、この修正プログラムを使用します。

var prm = new ObjectParameter("pName", typeof(int)); 
prm.Value = pmId; 
関連する問題