[英]Silverlight: How do I update properties dynamically in accordance with a current settings class?
[英]How do I modify this join in accordance with a model change involving inheritance?
我對項目的模型進行了更改,但有一個聯接似乎無法弄清如何響應模型更改而進行更改。 這是原始的模型設置以及連接代碼:
query = query.Join(db.Reports,
x => new
{
x.SourceUser,
x.TargetUser
},
x2 => new
{
SourceUser = x2.TargetUser,
TargetUser = x2.SourceUser
},
(x, x2) => new { x, x2 }).Where(f => (f.x.SourceUser == user)).Select(p => p.x);
這種聯接的結果是,結果查詢僅提供相互之間的報告關系(例如,雙方都相互報告了)。 直到我進行模型更改之前,此連接都可以正常工作。
這是新的模型設置
這是我嘗試修改聯接代碼的嘗試
query = query.Join(db.Reports,
x => new
{
x.SourceUser,
x.TargetReportable
},
x2 => new
{
SourceUser = x2.TargetReportable,
TargetReportable = x2.SourceUser
},
(x, x2) => new { x, x2 }).Where(f => (f.x.SourceUser == user)).Select(p => p.x);
這將導致以下錯誤:
無法從用法中推斷方法'System.Linq.Enumerable.Join(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func)的類型參數。 嘗試顯式指定類型參數。
我假設SourceUser的類型為UserAccount,TargetReportable的類型為Reportable。 λ比較蘋果和桔子。 您需要強制sourceuser鍵入Reportable,因為它繼承了Reportable。
query = query.Join(db.Reports,
x => new
{
T = (Reportable)x.SourceUser,
x.TargetReportable
},
x2 => new
{
SourceUser = x2.TargetReportable,
TargetReportable = (Reportable)x2.SourceUser
},
(x, x2) => new { x, x2 }).Where(f => (f.x.SourceUser == user)).Select(p => p.x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.