0
我有一个LINQ到有几个表绑定属性的sql类,但我想添加另一个从更复杂的查询计算出来的。Linq到自定义SQL的SQL属性
有没有办法在保持效率的同时添加包含自定义SQL代码的属性?
public class Region
{
string Name {get ;set;}
DateTime Founding {get; set;}
int CivilWarCasualties
{
get
{
// Scalar SQL code that returns an int
}
}
}
这就是我现在正在做的事情(请忽略架构,并且我在飞行中完成)。没有足够的一对一关系来做到这一点,而不做连接,这显然使它更复杂。我用了一堆的地方这个大加盟,我想简化它:
using (Context db = new Context())
{
var q = (from r in db.GetTable<Region>()
join b in db.GetTable<Battles>() join s.ID equals b.RegionID
join s in db.GetTable<Soldier>() join s.LastBattleID equals b.ID
join p in db.GetTable<Person>() join p.ID equals s.PersonID
where !p.IsAlive
select new {r, p})
.GroupBy(x => x.Name)
.Select(x=> new {x.Key.r.Name, x.Where(y => y.Key = x.Key).Count());
}
这是我要如何做到这一点:
using (Context db = new Context())
{
var q = (from r in db.GetTable<Region>()
select new {r.Name, r.CivilWarCasualties})
}
我基本上要手工编写的SQL代码上面那个大复杂的连接一次(我可能没有得到正确的答案,因为我正在做这个例子)。
我试图避免如果我尝试在C#中执行属性时发生的“不能转换为SQL”错误。我也接受其他想法。