Linq查询问题

时间:2009-12-30 16:58:40

标签: c# linq linq-to-sql iqueryable

我有这个代码从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 个答案:

答案 0 :(得分:6)

最终应该是:

。 。 。 select s.LastName);

修改

艾哈迈德的建议和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); 
    }
}

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

var perps = dataContext.AllegedPerpetrator.Where(p=>p.CaseID == caseIdValue)
            .Select(p=>p.LastName)

CaseIdValue是你传递的内容=

答案 3 :(得分:0)

如果给定案例ID只有一条记录,则可以使用单一表达式

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