我正在努力处理在 asp.net QueryString 方法中工作的 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=Football, 2=golf, 3=cricket) 等值。
一家公司可以没有/一种/多于一种运动类型。我想选择所有具有特定运动类型的公司。
但是这个 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;
}
任何人都可以帮忙吗?谢谢。