(MVC フレームワークをいじって) ADO.net Entity Data Model を作成しました。ここで、コンテキストのサブセットを返す関数を作成するなど、いくつかのビジネス ロジックで拡張したいと考えています。部分クラスはデータ モデルと一緒に作成されるため、次のように部分クラスを宣言する新しいファイルを作成しました。
その中に GetMovieById(int id) という関数を配置すると、結果は次のようになります。
namespace RecordStore.Models
{
public partial class MovieDBEntities
{
public Movie GetMovieById(int id)
{
Movie movie = MovieSet.First(m => m.id == id);
return movie;
}
}
}
プロジェクトを開始するまでエラーは発生しません。エラーは次のとおりです。
コンパイラ エラー メッセージ: CS1061: 'RecordStore.Models.MovieDBEntities' には 'MovieSet' の定義が含まれておらず、タイプ 'RecordStore.Models.MovieDBEntities' の最初の引数を受け入れる拡張メソッド 'MovieSet' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)
部分クラスの他の部分に MovieSet が含まれているため、エラーがわかりません。私の質問は、基本的に、これがデータ モデルを拡張する方法ではない場合、どのような方法でしょうか。それが方法である場合、なぜこのエラーが発生するのですか?