0

重複の可能性:
エンティティ フレームワークで null 値を照会するにはどうすればよいですか?

DAL としてエンティティ フレームワークを使用しています。SQLプロファイラを使用して、次のコード行を実行すると、データベースへのクエリをインターセプトしました

 m_Context.DomainEntities.Where(e => e.EntityParentID == i_UnitID); 

i_UnitIDequalsの場合null、生成されるクエリは次のとおりです。

exec sp_executesql N'SELECT 
[Extent1].[EntityTypeID] AS [EntityTypeID], 
[Extent1].[EntityID] AS [EntityID], 
[Extent1].[EntityName] AS [EntityName], 
[Extent1].[EntityParentID] AS [EntityParentID], 
...
FROM [dbo].[DomainEntities] AS [Extent1]
WHERE ([Extent1].[EntityTypeID] IN ( CAST( ''1'' AS int), CAST( ''2'' AS int), CAST( ''3'' AS int))) AND ([Extent1].[EntityParentID] = @p__linq__0)',N'@p__linq__0 int',@p__linq__0=NULL

[Extent1].[EntityParentID] = @p__linq__0where句で使用していることに注意してください。もちろん、それは機能しません。次を生成するために必要です

[Extent1].[EntityParentID] is NULL

これを達成するためにエンティティフレームワークを使用する別の方法はありますか?

4

1 に答える 1

0

書いてみてください

m_Context.DomainEntities.Where(e => e.EntityParentID == Convert.ToInt32(i_UnitID));

生成された SQL クエリを確認します。

于 2012-11-26T06:41:25.900 に答える