2011-02-24 33 views
0

我是新來的這一切,我想知道程序員如何有經驗處理以下情況LINQ到實體(連接查詢) - WPF - 4層應用

比方說,我有一個表「供應商」一些共用字段及字段也MailingAddress,BillingAddress其是2個鍵字段鏈接到另一個表 「地址」

TB供應商

ID = 1 名稱= MyNameFoo MailingAddressId = 100個 BillingAddress = 101

TB地址

編號= 100 街= MailingStreetFoo 市= MailingCityFoo

編號= 101 街= BillingStreetFoo 市= BillingCityFoo


我有一個4層塗布溶液:

項目xyz.WPF讓我的WPF窗口呈現t他數據給用戶(列表框用結合)

項目xyz.Business:在WPF和數據訪問之間(SupplierB.vb,AddressB.vb)

項目xyz.DataAccess.SqlServer:數據層(SupplierDAL.vb ,AddressDAL.vb)

project xyz.Entities:存儲我的實體類,每個實體類代表一個表,只是保存屬性。我使用它從一層傳遞到另一層(SupplierE.vb,AddressE.vb)。

SupplierDAL類從SQL Server獲取數據,並向SupplierB類返回一個「List(Of SupplierE)」,它將此「List(Of SupplierE)」返回給WPF綁定到的列表框 - > Listbox.ItemsSource = SupplierB .GetAllSuppliers()。現在


我可以得到所有的供應商,並顯示在ListBox中的WPF窗口(或數據網格,...)我也可以得到所有的地址,並告訴他們。

但在某些時候,我想要獲得一個供應商的所有地址(郵寄,帳單)。我知道如何用linq編寫我的查詢(連接2個表),但是我怎麼處理它的結果。它不是供應商E也不是AddressE;這是兩者的結合。我希望結果是一個可以傳遞給圖層的對象,就像SupplierE.vb,AddressE.vb一樣。當然,我可以製作另一個實體,例如SupplierAddressesE.vb;問題解決了,但在我真正的實時解決方案中,我有幾十個連接查詢,並在幾個不同的表(不僅僅是供應商,地址)之間進行連接。

那麼很多表,很多連接查詢結果;這是否意味着我必須爲每個不同的連接查詢創建一個實體對象(xxxE.vb),或者還有另一種方法,我們可以在Linq to Entities的4層圖層應用程序中執行此操作?

感謝您的任何答覆,可以直接我一個好方法,對於這種情況 呂克

回答

0

如果你是懶加載實體,那麼你的供應方實體應爲每個郵件/計費的連接地址實體。爲什麼不只是創建一個適當的供應商類,它具有郵寄/帳單屬性而不是Ids的地址類?