0

可能重复:
如何在实体框架中查询空值?

我正在使用实体框架作为我的 DAL。当我运行以下代码行时,使用 sql profiler 我截获了对数据库的查询

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

i_UnitIDequalsnull时,它生成的查询是:

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

是否有使用实体框架来实现这一目标的不同方法?

4

1 回答 1

0

试着写

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

并检查生成的 SQL 查询。

于 2012-11-26T06:41:25.900 回答