我是新來的使用Linq並剛剛開始了一個側面項目來學習一些基礎知識。我目前使用Linq to Sql,並且我所有的數據庫表關係都工作得很好。目前我有一個客戶表和一個項目表。每個客戶可以有一個或多個項目。因此,正如你所期望的,每個Client對象在Linq發揮其魔力之後都有一個Project對象集合。Linq to Sql - 從1中選擇:很多
我使用下面的代碼,它運行良好,但我認爲有一個更好的方法來做到這一點。我需要通過我的方法的專案編號,然後由客戶選擇項目:
private void PopulateStatusView(int projectID)
{
MyDataContext db = new MyDataContext();
var client = (from u in db.Clients
where u.id == Convert.ToInt32(Session["ClientID"])
select u).SingleOrDefault();
if (client != null)
{
foreach (Project currentProject in client.Projects)
{
if (currentProject.id == projectID)
{
// Project Selected Here
statusProjectName.Text = currentProject.name;
}
}
}
else
{
// Session Expired
}
}
任何人都可以讓我知道如果有一個更好的解決方案,而不是遍歷每個項目。
謝謝。
謝謝,這是最簡潔的。在使用Projects.Any和Projects.Where之間有很大的區別嗎? – Sean 2009-02-19 17:54:46
任何返回一個*布爾值*值來指示是否存在這樣的項目ID。哪裏返回那些滿足該ID的項目。 「Any(x)」在語義上類似於「Where(x).Count()> 0」 – 2009-02-19 18:19:04