我有兩個表1)產品2)分類LINQ to SQL和從連接表
僅檢索特定行產品表有一個稱爲「類別ID」字段和類別表已稱爲字段「類別名稱」,ID ,DateCreated和其他一些。
我想使用LINQ to SQL查詢所有產品行以及JUST Category.CategoryName。此查詢將用於數據源並綁定到ListView。
我知道我可以使用LoadWith選項與DataContext和一個連接。但問題是,我最終與所有來自產品和類別的行。我真正想要的是從產品的所有行和只是的Category.CategoryName
完美的解決辦法是,如果LoadWith選項將讓您指定的域返回,但作爲answered here,這是不可能的。
我確實發現單程要做到這一點,創建一個自定義類,它具有我想要返回的相同的確切字段。因此,例如
public class ProductInfo
{
public string ProdName { get; set; }
public int ProdID { get; set; }
public int CategoryID { get; set; }
public string CategoryName { get; set; }
}
但問題是,選擇語句結束真的很長。例如...
var products = from p in db.Products
join c in db.Categories on p.CategoryID = c.ID
select new ProductInfo { ProdName = p.ProdName, ProdID = p.ID,
CategoryID = p.CategoryID, CategoryName = c.CategoryName }
這變得非常容易出錯。
所以我的問題 - 有沒有更好的方法來完成這個?
編輯/澄清: 我應該提到的是,我之所以需要中介類是因爲我需要能夠ProductInfo