我有一张桌子,需要通过分组Field1和Field2来获取列表
public class Journal
{
public int ID {get; set;}
public string DateField { get; set; }
public string Notes { get; set; }
public int Field1 { get; set; }
public string Field2 { get; set; }
}
首先,我按Field2(字符串)过滤数据,并按两个字段(Field1和Field2)进行分组
MyList = DBContext.Journals.Where(f=>f.Field2.StartsWith(someParam))
.GroupBy(g => new { g.Field1, g.Field2 })
.Select(n=> n.Key.Field1).ToList();
如果Field1和Field2不为null,一切正常,但如果它们为null,如何解决问题,你可以帮忙吗?
如果有空值,我有一个例外:
“转换为值类型'System.Int32'失败,因为具体化值为null。结果类型的泛型参数或查询必须使用可空类型。”
答案 0 :(得分:1)
您是否尝试过类似的事情:
MyList = DBContext.Journals.Where(f=> !String.IsNullOrEmpty(f.Field1) && f.Field2 != null && (f.Field2.StartsWith(someParam)))
.GroupBy(g => new { g.Field1, g.Field2 })
.Select(n=> n.Key.Field1).ToList();