Linq to sql 使用LINQ到SQL连接向复杂对象添加一列

Linq to sql 使用LINQ到SQL连接向复杂对象添加一列,linq-to-sql,join,Linq To Sql,Join,我有一个超过100列的表。我需要将它连接到另一个表以获取更多列。我必须列出左表中的每一列,还是有更简单的方法 var query = from p in context.policies join s in context.states on p.state_id equals s.state_id select new { p.column1, p.column2,

我有一个超过100列的表。我需要将它连接到另一个表以获取更多列。我必须列出左表中的每一列,还是有更简单的方法

var query = from p in context.policies
            join s in context.states 
            on p.state_id equals s.state_id
            select new {
              p.column1,
              p.column2,
              p.column3,
              <etc> ...,
              p.column123,
              s.state_name
            };
var query=来自context.policies中的p
在context.states中加入s
p.state_id等于s.state_id
选择新的{
p、 第1栏,
p、 第2栏,
p、 第3栏,
...,
p、 第123栏,
s、 州名
};

有没有一种方法可以做到这一点,而不只是创建一个全新的对象来添加一个字段?

您可以定义一个字段来获取整个p对象,而不是单独列出匿名类型中的每个字段:

... select new { Policies = p, StateName = s.state_name };
然后,您必须通过obj.policies.nnn等访问策略字段


这是假设策略对象可以存在于原始数据集之外。如果是数据行或类似的行,这可能不起作用。

我不知道匿名类型上的显式命名选项,直到几周前,我遇到了一种情况,我加入了两个集合,每个集合的对象都有相同的字段名。需要使用显式命名来解决名称冲突/歧义。