从Linq-to-SQL中读取一行

Arn*_*und 4 c# sql-server refactoring linq-to-sql

我想重构一些C#模块,它们通过Linq-to-SQL从SQL Server 2008读取数据.这些存储过程最多获取一行,因为我提交完整的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));
Run Code Online (Sandbox Code Playgroud)

这段代码完成了工作,但有点看起来很难看.我怎样才能做得更好?

Mar*_*ell 11

return context.MyProcName(myParameter).Single().THeColumnINeed;
Run Code Online (Sandbox Code Playgroud)