.net linq到sql连接结果
我有两张桌子,带外键。 为me类生成的linq到sql类。 现在我想让linq选择连接,连接的结果是什么? 对于这个结果,在哪里可以生成类? 想得到像这样的东西吗.net linq到sql连接结果,.net,linq,.net,Linq,我有两张桌子,带外键。 为me类生成的linq到sql类。 现在我想让linq选择连接,连接的结果是什么? 对于这个结果,在哪里可以生成类? 想得到像这样的东西吗 IEnumerable<par_of_class1+part_of_class2>. IEnumerable。 thx它取决于您需要该“类型”的范围 如果只需要在特定方法中访问此结果,则可以将结果投影到(因为它们只有方法范围) 例如: var result = (from a in tablea join b in
IEnumerable<par_of_class1+part_of_class2>.
IEnumerable。
thx它取决于您需要该“类型”的范围 如果只需要在特定方法中访问此结果,则可以将结果投影到(因为它们只有方法范围) 例如:
var result = (from a in tablea join b in tableb
on a.key equals b.key
select new {
PropertyOne = a.Something,
PropertyTwo = b.Something
}).SingleOrDefault();
在该示例中,result将是一个匿名类型,包含两个属性:PropertyOne和PropertyTwo
注意,在调用SingleOrDefault之前,查询是一个IQueryable
,因此您可以选择使用.ToList()
将结果集投影到集合中
修改select new(称为“投影”)以包含所需内容
如果需要在方法外部访问此类型,请执行以下操作,而不是选择新{}
select new SomeClass { ... } // projection into concrete class
并将字段投影到该类中(该类可以具有适当的可访问性修饰符)
另外(顺便说一句),请不要忘记回去接受你的一些答案(包括这一个,如果它是正确的),因为这将导致更多的人向你提供帮助
HTHRPM1984是正确的。下面是另一种方法,虽然更麻烦,但值得一提:
TableOne
.Join(
TableTwo,
x => x.TableOneID, //selector for the outer table (TableOne)
x => x.TableOneFK, //selector for the inner table (TableTwo). These values are what the tables are joined on
(o,i) => new { Outer = o, Inner = i, Property = o.Property } //new anonymous class where o is a record from TableOne, and i is a record from TableTwo
);
如果不想返回匿名类,则不必返回匿名类。连接的返回实际上可以是您想要的任何内容。如果您只想返回“o.Property”,也可以只返回“o”。您可以随意使用它,返回您想要的任何东西