我正在努力处理在asp.net QueryString方法中工作的linq查询。我尝试了各种各样的东西,但仍然没有把它做好。Linq查询来选择一个项目,使用集合中的参数
我的模型是:
public class SportType
{
public int SportTypeID {get; set;}
public string SportTypeName {get; set;}
}
public class Company
{
public int CompanyID {get; set;}
public string Name {get; set;}
public ICollection<SportType> sportTypes {get; set;}
}
没有与值,例如(1 =足球,2 =高尔夫球,3 =蟋蟀)等
公司可以在数据库中的一个运动类型的表没有/一种/多种运动类型。 我想选择所有具有特定运动类型的公司。
但这LINQ查询提供了一个编译器错误:
参数1:不能从System.Linq.IQueryable转换为MyNamespace.SportType
public IQueryable<Company> GetCompanies([QueryString("sportTypeID")] int? sportTypeID)
{
var db = new MyDatabaseContext();
IQueryable<Company>query = db.Companies;
if (sportTypeID.HasValue && sportTypeID>0)
{
query = query.Where(theCompany => theCompany.sportTypes.Contains(db.SportTypes.Select(sp => sp.SportTypeID == sportTypeID)));
}
return query;
}
谁能帮助? 谢谢。
我发送了很多。任何调用数据库。它当然可以翻译。你试过了吗?另外 - 加入 - >独特是不好的... – 2013-02-17 00:14:21
谢谢大卫。由于我没有尝试过,我的印象是每个'.Any'都有一个数据库查询。幸运的是,LINQ比这更聪明。 – 2013-02-17 06:27:01