我被一個問題困住了,在那裏我覺得我可以俯視一些東西。mvc index with many to firstordefault
我想獲得一對一的結果從一對多關係爲一個asp.net mvc索引視圖。
我有三類
public class Contact
{
public int ContactID { get; set; }
public string Name { get; set; }
public virtual ICollection<Relation> Relations { get; set; }
}
public class Relation
{
public int RelationID { get; set; }
public string Position { get; set; }
public int CompanyID { get; set; }
public int? ContactID { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
public class Company
{
public int CompanyID { get; set; }
public string CompanyName { get; set; }
public virtual ICollection<Relation> Relations { get; set; }
}
結果應該包括以下
public class ContactViewModel
{
public int ContactID { get; set; }
public string Name { get; set; }
public string Position { get; set; }
public string CompanyName { get; set; }
}
我試圖LINQ和Lambda表達式來獲取數據到視圖模型例如
var contacts = from contact in db.Contacts
.Include(relation => relation.Relation
.Where(s => s.ContactID == contact.ContactID)
.OrderByDescending(d => d.StartDate)
.FirstOrDefault())
select new ContactViewModel
{
ContactID = contact.ContactID,
Name = contact.Name,
Position = relation.Position,
Company = relation.Company.CompanyName
};
但我不明白它的工作...
視圖應顯示與
Name Position Company
Hans Boss Sausage House
Tom Manager Burger Building
查詢一個asp.net mvc的索引視圖的關係是沒有問題的,並得到相關的聯繫人和公司,但不是每個聯繫人都有一個職位,有些人有不止一個。所以我想包括所有聯繫人和所有當前關係。
我知道改變關係或者我的想法應該看起來像是更容易。
但也許有人可以幫忙。
謝謝!
UPDATE
謝謝你的快速反應,你是絕對正確的與您的意見。但我的問題不是查詢的彙編。無論如何,此查詢無法正常工作。我堅持如何讓模型充滿期望的結果,如果這是可能的話。我可能需要採取不同的方法,我已經嘗試了一些。也許有人可以幫助一個具有預期結果的查詢。
謝謝!我加了兩個失蹤的「s」。因爲我沒有複製項目中的代碼,所以我只是在這篇文章中犯了一個錯誤。我會試試這個! – Dreki
謝謝!它完美的作品。 – Dreki