2017-02-20 77 views
0

我有兩個表格作爲主數據和詳細數據。我設置一些屬性,像: [DisplayName="Customer Name"]和..... 當我填補我的DataGridView源或報告服務源或...與選定的名單,我可以使用的屬性,它把我的頭柱和許多有用的其他想法。但如果我想要弗拉特我的主細節和寫linq選擇像:加入Linq的數據分段丟失選擇

var x = from m in master 
    join d in detail on m.id equal d.masterId 
    select new {d.Id , d.Name , m.Date, m.Customer} 

我無法訪問定義的屬性。 我能做什麼? 我不喜歡寫viewClass類的每個選擇

回答

0

爲此,你必須創建一個新的模式/類像MasterDetails,這將拿在網頁所有你想要的屬性查看和應用上的屬性新的MasterDetails類然後寫一個新的linq之類的。

var x = from m in master 
    join d in detail on m.id equal d.masterId 
    select new MasterDetails {Id=d.Id ,Name= d.Name ,Date= m.Date,Customer= m.Customer} 

希望它能爲你工作。

+0

如果我這樣做,我必須爲每個我想要的視圖編寫一個** ViewClass **(或每個聯合選擇...想想如果我的數據在兩個以上的表中,我加入了它們)。爲什麼配置屬性? –

+0

屬性沒有處理,但它只與類對象相關聯,所以你認爲'select new {d.Id,d.Name,m.Date,m.Customer}'的類型是什麼?這是一個匿名類型。 – Viplock

+1

所以是的,如果你在視圖中使用了一些混合的,數據類型的東西,並且你想使用Attribute,你必須創建一個新的類(ViewClass), – Viplock