0

(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 が含まれているため、エラーがわかりません。私の質問は、基本的に、これがデータ モデルを拡張する方法ではない場合、どのような方法でしょうか。それが方法である場合、なぜこのエラーが発生するのですか?

4

1 に答える 1

0

これが良いテクニックかどうかは、他の人に任せます。ただし、コンパイル エラーを考慮すると、上記の部分クラスとモデルによって生成されたクラスがまったく同じ名前空間にあると確信していますか?

于 2009-03-25T21:10:21.207 に答える