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」錯誤。我也接受其他想法。