DAL としてエンティティ フレームワークを使用しています。SQLプロファイラを使用して、次のコード行を実行すると、データベースへのクエリをインターセプトしました
m_Context.DomainEntities.Where(e => e.EntityParentID == i_UnitID);
i_UnitID
equalsの場合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__0
where句で使用していることに注意してください。もちろん、それは機能しません。次を生成するために必要です
[Extent1].[EntityParentID] is NULL
これを達成するためにエンティティフレームワークを使用する別の方法はありますか?