获取linq以返回IEnumerable< DataRow>.结果 [英] Get linq to return IEnumerable<DataRow> result

查看:159
本文介绍了获取linq以返回IEnumerable< DataRow>.结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在C#中将以下SQL查询转换为LINQ?

How can I convert following SQL query to LINQ in C#?

我不需要两个表中的所有列,结果集应该是

I don't need all columns from both tables and the result set should be

IEnumerable<DataRow>

查询:

select 
    c.level, cl.name, c.quantity
from 
    dbo.vw_categories c
left join 
    dbo.vw_categoriesLocalization cl on c.level = cl.level 
                                     and cl.language = 'en'
where 
    c.level like '000%' 
    and c.level <> '000';

预期:

IEnumerable<DataRow> result = ????

先谢谢了.

推荐答案

这是您编写查询的方式:

Here's how you would write the query:

var query =
    from c in db.vw_categories
    join cl in db.vw_categoriesLocalization on c.level equals cl.level into clo
    from cl in clo.DefaultIfEmpty()
    where (cl == null || cl.language == "en")
          && c.level.StartsWith("000")
          && c.level != "000"
    select new
    {
        c.level,
        name = cl == null ? null : cl.name,
        c.quantity
    }

要将其转换为IEnumerable<DataRow>,也许您可​​以执行以下操作:

To convert that to IEnumerable<DataRow> maybe you could do something like this:

var datarows = query.Select(r => {
    var row = dataTable.NewRow();
    row["level"] = r.level;
    row["name"] = r.name;
    row["quantity"] = r.quantity;
    return row;
});

这篇关于获取linq以返回IEnumerable&lt; DataRow&gt;.结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆