2

我有这段代码从 Alleged Perpetrator 表中返回 caseID。此表还有一列“LastName”。我想搜索 caseID 并返回 LastName,但我不知道如何编码。我一直在微软网站上寻找 LINQ to SQL 示例,但仍然无法弄清楚。任何帮助将不胜感激!

public static class AllegedPerpetratorRepository
{
    public static IQueryable<AllegedPerpetrator> GetByCaseID(
        this IQueryable<AllegedPerpetrator> source,
        int caseID)
    {
        return (from s in source where s.CaseID.Equals(caseID) select s); 
    }
}
4

4 回答 4

6

最后应该是:

. . .select s.LastName);

编辑

Ahmed 的建议和 Jeroen 的修复:

public static class AllegedPerpetratorRepository
{
    public static IEnumerable<string> GetByCaseID(
        this IQueryable<AllegedPerpetrator> source,
        int caseID)
    {
        return (from s in source where s.CaseID.Equals(caseID) select s.LastName); 
    }
}
于 2009-12-30T17:01:12.640 回答
0

如果给定的案例 id 有一个且只有一个记录,您可以使用 Single 表达式

var lastName = dataContext.AllegedPerpetrator.SingleOrDefault(i => i.CaseID == caseId).LastName

于 2009-12-30T18:22:47.750 回答
0

您是否使用 Visual Studio 映射器工具从数据库创建了 LINQ to SQL 类?

您可以添加一个“新项目”,然后根据您的数据库架构添加一个 LINQ to SQL 类。该工具将为您从表中生成类。

然后,您可以使用这些代表数据库列和表的类(每个表一个类)来使用 LINQ。

如果你用谷歌搜索的话,有一些关于 LINQ to SQL 的好教程。

于 2009-12-30T17:01:42.017 回答
0
var perps = dataContext.AllegedPerpetrator.Where(p=>p.CaseID == caseIdValue)
            .Select(p=>p.LastName)

CaseIdValue 是您传入的内容=

于 2009-12-30T17:03:54.247 回答