繁体   English   中英

Linq to SQL选择多个列

[英]Linq to SQL select multiple columns

我只想使用LINQ从MSSQL DB中选择2列。

SQL应该是

select table.col1,table.col2 from table

我试过了

IList<string> myResults =
(
    from data in dbconn.table
    where table.col5 == null
    select new { 
        col1=data.Id.ToString(),
        col2=data.col2
    }
).Take(20).ToList();

但这没用。

它说

cannot convert type  list <AnonymousType#1> to Ilist<string>

您基本上尝试使用匿名类型列表的条目填充字符串列表,这将无效。

你尝试过这样的事吗?:

var list = from data in dbconn.table
           where table.col5 == null
           select new { 
            col1=data.Id.ToString(),
            col2=data.col2
           }

然后,您可以轻松地使用循环中的条目

foreach(var element in list) {
//...
}

或者像列表一样

list.Take(20).ToList();

首先,一个字符串List<string>List<string> )只能在一个元素中只有一个字符串而不是两个(你在这里尝试做什么)将类型更改为var会修复你的异常,但不确定是否是你想要的解决方案

var myResults =
(
    from data in dbconn.table
    where table.col5 == null
    select new { 
        col1=data.Id.ToString(),
        col2=data.col2
    }
).Take(20).ToList();

您可以使用linq选择多个字段选择如上所示,在各种示例中,它将作为匿名类型返回。 如果你想避免这种匿名类型,这是一个简单的技巧。

var items = myResults.Select(f => new [] { f.Col1, f.Col2 }).SelectMany(item => item).Distinct();

我认为这解决了这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM