2017-02-20 51 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