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=フットボール、2=ゴルフ、3=クリケット) などの値を持つスポーツ タイプ テーブルがあります。
1 つの会社は、0、1、または複数のスポーツ タイプを持つことができます。特定のスポーツ タイプを持つすべての企業を選択したいと考えています。
しかし、この 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;
}
誰でも助けることができますか?ありがとう。