Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net linq到sql连接结果_.net_Linq - Fatal编程技术网

.net linq到sql连接结果

.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

我有两张桌子,带外键。 为me类生成的linq到sql类。 现在我想让linq选择连接,连接的结果是什么? 对于这个结果,在哪里可以生成类? 想得到像这样的东西吗

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
并将字段投影到该类中(该类可以具有适当的可访问性修饰符)

另外(顺便说一句),请不要忘记回去接受你的一些答案(包括这一个,如果它是正确的),因为这将导致更多的人向你提供帮助


HTH

RPM1984是正确的。下面是另一种方法,虽然更麻烦,但值得一提:

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”。您可以随意使用它,返回您想要的任何东西