从Linq到SQL只读取一行

本文关键字:一行 读取 Linq SQL | 更新日期: 2023-09-27 17:58:32

我想重构一些C#模块,这些模块通过Linq将SQL Server 2008中的数据读取到SQL中。这些存储过程最多只能获取一行,因为我提交的是完整的PK作为参数。显然,Linq-to-SQL不知道最多可以返回一行。因此,运行以下代码以获得一个值或引发异常:

    var results = context.MyProcName(myParameter);
    foreach (var result in results)
    {
        return result.THeColumnINeed;
    }
    throw new Exception(string.Format("Value not found for parameter {0}", myParameter));

这个代码完成了任务,但看起来有点难看。我怎样才能做得更好?

从Linq到SQL只读取一行

return context.MyProcName(myParameter).Single().THeColumnINeed;

试试这个:

return context.MyProcName(myParameter).First();