实体框架选择null使用“FieldName = null”而不是“FieldName为null”

时间:2012-11-26 03:41:19

标签: c# sql-server asp.net-mvc entity-framework

  

可能重复:
  How can i query for null values in entity framework?

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

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

i_UnitID等于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

请注意,它在where子句中使用[Extent1].[EntityParentID] = @p__linq__0。 那当然是有效的,我需要它来生成以下

[Extent1].[EntityParentID] is NULL

是否有使用实体框架实现此目的的不同方法?

1 个答案:

答案 0 :(得分:0)

尝试写

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

并检查生成的SQL查询。