我正在使用MVC 4和实体框架,正在从服务器检索电子邮件:
var data = db.Candidates.Where(c => ids.Contains(c.ID) && c.Email1 != null).Select(c => new { c.Email1, c.ID }).ToList();
我的第一个问题:LINQ是否允许我从Email1字段返回空字符串(如果它为null,类似于SQL合并)? (我将从where子句中删除null测试)。
第二个问题:最容易使用的对象是什么(如果我想随同Email1一起获得c.Name,然后替换“ var data =“,然后在循环中同时使用这两个对象?我应该只为2个字段创建一个模型吗?
非常感谢您的任何见解。
最佳答案
我的第一个问题:LINQ是否允许我从Email1字段返回空字符串(如果它为null,类似于SQL合并)? (我将从where子句中删除null测试)。
是的,有一个??
运算符的工作方式类似于coalesce
。:
new { Email1 = c.Email1 ?? "", c.ID } //String.Empty would be nicer, but i think it depends on EF version if you are allowed to use it.
对于第二个问题,如果这是您唯一要使用它们的地方,那么匿名就可以了。
如果您想在其他地方使用它,可以创建一个仅具有两个属性的对象……这毕竟是对象的目的。 (或者一个结构?)