首页 / C# / c# – 使用LINQ查询单个列
c# – 使用LINQ查询单个列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用LINQ查询单个列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1215字,纯文字阅读大概需要2分钟。
内容图文
![c# – 使用LINQ查询单个列](/upload/InfoBanner/zyjiaocheng/821/cb64cef395294c8a915326fbc79a57b0.jpg)
我想获取表中单个列的值数组,例如,我有一个名为Customer(ID,Name)的表,并且想要获取所有客户的ID.我在LINQ中的查询是:
var ids = db.Customers.Select(c=>c.ID).ToList();
这个查询的答案是正确的,但是我运行了SQL Server Profiler,并看到了如下所示的查询:
SELECT [t0].[ID], [t0].[Name] FROM [dbo].[Customer] AS [t0]
我知道LINQ选择所有列,然后创建ID字段的整数数组.
如何编写在SQL Server中生成此查询的LINQ查询:
SELECT [t0].[ID] FROM [dbo].[Customer] AS [t0]
谢谢.
更新:我有一个执行此操作的函数,此函数会导致该结果:
public static List<TResult> GetSingleColumn<T, TResult>(Func<T, bool> predicate, Func<T, TResult> select) where T : class
{
using (var db = new DBModelDataContext())
{
var q = db.GetTable<T>().AsQueryable();
if (predicate != null)
q = q.Where(predicate).AsQueryable();
return q.Select(select).ToList();
}
}
并像这样使用它:
var ids = DBMH.GetSingleColumn<Customer, int>(null, c => c.ID);
解决方法:
public static List<TResult> GetSingleColumn<T, TResult>(
Expression<Func<T, bool>> predicate,
Expression<Func<T, TResult>> select) where T : class
{
using (var db = GetData())
{
var q = db.GetTable<T>().AsQueryable();
if (predicate != null)
q = q.Where(predicate).AsQueryable();
var q2 = q.Select(select);
return q2.ToList();
}
}
这是你应该做的方式.
内容总结
以上是互联网集市为您收集整理的c# – 使用LINQ查询单个列全部内容,希望文章能够帮你解决c# – 使用LINQ查询单个列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。