SQLSERVERの「In句」のようなものを使いたい。これが私のモデルです:
public partial class StationEvaluationBooks
{
public int StationEvaluationBookID { get; set; }
public Nullable<int> StationEvaluationID { get; set; }
public virtual StationEvaluation StationEvaluation { get; set; }
...
}
public partial class StationEvaluation
{
public StationEvaluation()
{
this.StationEvaluationBooks = new HashSet<StationEvaluationBooks>();
}
public int StationEvaluationID { get; set; }
public virtual ICollection<StationEvaluationBooks> StationEvaluationBooks { get; set; }
...
}
次のコードを使用してLINQによる「In句」を実装しましたが、エラーが発生しました。
StationsEntities db = new StationsEntities();
var stationevaluations = db.StationEvaluation;
//some conditions:
stationevaluations = stationevaluations.Where(/*condition*/);
..
var result = from c in db.StationEvaluationBooks
where stationevaluations.Contains(c.StationEvaluationID)
select c;
エラー:「System.Data.Entity.DbSet」に「Contains」の定義が含まれておらず、最適な拡張メソッドのオーバーロード「System.Linq.ParallelEnumerable.Contains(System.Linq.ParallelQuery、TSource)」に無効な引数がいくつかあります
編集: stationevaluations変数で選択された評価に関連する本を取得したいと思います。