gru*_*ber 2 c# linq anonymous-types .net-4.0 linq-to-sql
我正试图从查询中获取匿名对象:
var myList = from td in MyObjectList
select new
{
a = td.a,
b = td.b,
c = td.c,
name = (from r in contex.NewList
where r.aa == td.a && r.bb == td.b
select r.Name).ToList()
};
Run Code Online (Sandbox Code Playgroud)
我希望名称有r.Name值因为我希望名称列表只包含一个元素.如果它包含0个元素,我想命名为NONE,如果超过1个元素则应抛出异常或其他东西.
是否有可能实现这样的目标?感谢帮助.
而不是.ToList()使用
.SingleOrDefault() ?? (td.a == 0 ? "XNone" : "None")
Run Code Online (Sandbox Code Playgroud)
编辑:根据评论更改了anwer.
另外,我建议不要将这样的逻辑放入Linq-to-SQL中.有时这会导致大量高度未经优化的SQL代码,除非你不介意一些性能问题,否则会导致SQL执行速度慢得多.