当存在空数据库字段时,为什么此实体框架查询失败?

时间:2012-09-17 19:01:48

标签: c# asp.net-mvc-3 entity-framework-4

我正在使用MVC3 C#.NET。我有一个查询(到现在为止),它返回基于companyID的行:

var records = db.groupsToClassesMapping.Where(r => r.CompanyID == CompanyId);

该模型如下所示:

[Table("Rpt_GroupsToClasses")]
public class GroupToClass
{
    public int id { get; set; }
    public string GroupName { get; set; }
    public string ClassName { get; set; }
    public int ClassIndex { get; set; }
    public int CompanyID { get; set; }
}

,DBContext看起来像这样:

    public DbSet<GroupToClass> GroupsToClassesMapping { get; set; }

以前填充了所有表条目,查询将返回结果:

ID | Group Name | ClassName | ClassIndex | CompanyID
-----------------------------------------------------
1  | Pine       | Merch     | 1          | 1
2  | Oak        | Non-merch | 4          | 1

然而,我发现自己需要将一些条目留空:

ID | Group Name | ClassName | ClassIndex | CompanyID
-----------------------------------------------------
1  | Pine       | Merch     | 1          | 1
2  | Oak        | NULL      | NULL       | 1

和我的查询(其中(r =&gt; r.companyID == CompanyId))不会返回任何内容。我需要对模型字段做些什么来使其正常工作吗?

1 个答案:

答案 0 :(得分:3)

通过将数据类型更改为int?来使ClassIndex可为空。