2009-12-30 217 views
2

我有这个代码从一个Alleged Perpetrator表中返回一个caseID。该表还有一列“LastName”。我想搜索caseID并返回LastName,但我不知道如何对其进行编码。我一直在微软网站上寻找LINQ to SQL的例子,但仍然无法弄清楚。任何帮助将不胜感激!Linq查询问题

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); 
    } 
} 

回答

6

尽头应该是:

。 。 。 select s.LastName);

编辑

艾哈迈德的建议和吉荣的修复:

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); 
    } 
} 
+4

另外,该方法的返回类型的记录将改为'LastName'的类型,大概是'string' – 2009-12-30 17:06:43

+1

函数类型不应该是字符串。它可以是IEnumerable ,也可以应用.First()返回。 – 2009-12-30 18:39:57

0

你从数据库中使用Visual Studio的映射工具创建的LINQ to SQL类?

您可以添加一个'新项',然后根据您的数据库模式添加一个LINQ to SQL类。该工具将为您生成表格中的类。

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

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

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

CaseIdValue是你在=

0

通过如果有且仅有一个用于给定的情况下,ID可以使用单一的表达

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