C# 联接Linq Select中的数据注释丢失
我有两张表作为主表和明细表。我设置了一些属性,如:C# 联接Linq Select中的数据注释丢失,c#,linq,entity-framework-6,data-annotations,C#,Linq,Entity Framework 6,Data Annotations,我有两张表作为主表和明细表。我设置了一些属性,如: [DisplayName=“Customer Name”]和。。。。。 当我填写我的数据网格视图源或报告服务源或。。。通过选择列表,我可以使用属性,它可以设置我的标题栏和许多有用的其他内容。但是,如果我想了解我的主要细节并编写linq select,如: var x = from m in master join d in detail on m.id equal d.masterId select new {d.Id , d.N
[DisplayName=“Customer Name”]
和。。。。。
当我填写我的数据网格视图源或报告服务源或。。。通过选择列表,我可以使用属性,它可以设置我的标题栏和许多有用的其他内容。但是,如果我想了解我的主要细节并编写linq select,如:
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。为此,您必须创建一个新的模式/类,如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}
希望它对您有用。如果我这样做,我必须为我想要的每个视图(或每个连接的选择…想想我的数据是否在两个以上的表中,并且我连接了它们)编写一个ViewClass。为什么属性要dispose?属性没有被dispose,但它只与类对象关联,所以您认为
select new{d.Id,d.Name,m.Date,m.Customer}
的类型是什么?这是一种匿名类型。所以,是的,如果您在视图中使用某种混合数据类型的东西,并且希望使用属性,则必须创建一个新类(ViewClass),