连接多个表并在 LINQ 中的 DataRow 中获取输出

发布于 2024-10-26 02:43:55 字数 362 浏览 1 评论 0原文

嗨,

我有一个场景,我连接了多个表并在 DataRow 中获取输出(查询返回的所有行)。

SQL 查询:

SELECT  Fr.InterCodeId   
        FROM    
        CodeShareInterline Fr,    
        Airline A,Zone Z   #
        WHERE    
        A.AirlineId = Fr.AirlineId   
        And Fr.ContractId=Z.ContractId

我知道如何在 LINQ 中执行联接,但如何在 LINQ 的 select 语句中选择所有列(行)。

HI,

I have a scenario where i have join multiple table and get the output in DataRow(All the Rows return by the query).

SQL Query:

SELECT  Fr.InterCodeId   
        FROM    
        CodeShareInterline Fr,    
        Airline A,Zone Z   #
        WHERE    
        A.AirlineId = Fr.AirlineId   
        And Fr.ContractId=Z.ContractId

I know how to perform join in LINQ but how can i select all the column(Rows) in select statement of LINQ.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抱猫软卧 2024-11-02 02:43:55
var result = from fr in dataContext.CodeShareInterline
            from a in dataContext.AirLine
            from z in dataContext.Zone
            where a.AirlineId == fr.AirlineId && fr.ContractId == z.ContractId
            select new 
               {
                   Interline = fr,
                   AirLine = a,
                   Zone = z
               };

匿名类型包含您想要的所有数据,您可以通过以下方式轻松访问一列:

result.FirstOrDefault().Zone.SomeField
var result = from fr in dataContext.CodeShareInterline
            from a in dataContext.AirLine
            from z in dataContext.Zone
            where a.AirlineId == fr.AirlineId && fr.ContractId == z.ContractId
            select new 
               {
                   Interline = fr,
                   AirLine = a,
                   Zone = z
               };

The anonymous type contains all data you want, you can easily visit one column by:

result.FirstOrDefault().Zone.SomeField
花开柳相依 2024-11-02 02:43:55

这是未经测试的,但接近于此的东西应该可以工作。假设您的数据上下文称为 Context。这是您上面内容的翻译。

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select fr.InterCodeId;

如果您想选择所有数据,那么您需要执行类似的操作。

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select new { 
                        Interline = fr,
                        AirLine = a,
                        Zone = z
                       };

This is untested but something close to this should work. Assuming your data context is call Context. This is a translation of what you have above.

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select fr.InterCodeId;

If you want to select all of the data then you need to do something like this.

var o = from fr in Context.CodeShareInterline
            join a from Context.Airline on a.AirlineId == fr.AirlineId 
            join z from Context.Zone on fr.ContactId == z.ContactId
            select new { 
                        Interline = fr,
                        AirLine = a,
                        Zone = z
                       };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文