2

ここでこの種の質問をたくさん見てきましたが、回答がないか、私が尋ねている質問とまったく同じではないか、必要な詳細ではないかのいずれかです。

大まかなリファレンス ビューとして、プロジェクトのスクリーンショットを以下に示します。

  1. 私の「サンプル」ソリューションでは、現在Sample.Data.Model、データベース ファースト モデルの edmx ファイルを含む というプロジェクトがあります。
  2. この MSDN チュートリアルの手順に従って、自動生成された POCO クラスを別のプロジェクトに移動し、Sample.Data.Entities.
  3. 次に、Sample.Data.Entitiesプロジェクトでプロジェクトを参照し、Sample.Data.Modelすべての使用を修正して、プロジェクトが正常にビルドされるようにしました。
  4. もちろん、POCO クラスに追加する必要があるため、部分クラス用のPartialClassesフォルダーをSample.Data.Entitiesプロジェクトに追加しました。

そして、これは私が迷子になるところです。小規模な (非 n 層プロジェクト) では、edmx ファイルと部分クラスが同じプロジェクト内にあるため、次のように部分クラス ファイルにクラス オブジェクト関連のメソッドを追加するだけで済みます。

namespace Sample.Data.Entities
{
    public partial class User
    {
        public string FullName 
        { 
            get 
            { 
                return string.Format("{0} {1}", this.FirstName, this.LastName); 
            } 
        }
    }

    public User GetUser(int userID)
    {
        using (var dc = new ProntoEntities())
        {
            return (from u in dc.Users where u.ID == userID select u).SingleOrDefault();
        }
    }
}

そして、MVCプロジェクトでは、このようなことをすることができました...

User user = new User();
user = user.GetUser(1);

また

User user = new User();
user.FirstName = "John";
user.LastName = "Smith";
user.Update();

ただし、部分クラスはエンティティについて何も知らないため、この現在の設定ではそれを行うことはできません。

それで、私の質問は、現在のセットアップのどこにデータの「クエリ」を配置するのですか?

また、MVC プロジェクトの「ViewModel」を作成する場合、どこに行けばよいですか? 私は通常、それらを部分クラスおよび edmx ファイルと同じプロジェクトに配置します。

クリックすると、下の画像の拡大版が表示されます

ここに画像の説明を入力

4

2 に答える 2

1

それで、私の質問は、現在のセットアップのどこにデータの「クエリ」を配置するのですか?

魔法のリポジトリ パターンを使用する必要があると思います。
例: http://www.remondo.net/repository-pattern-example-csharp/

また、MVC プロジェクトの「ViewModel」を作成する場合、どこに行けばよいですか?

ビューモデルにはビューに接続されているデータが含まれているため、エンティティまたはその部分クラスと組み合わせる必要はないと思います。私があなただったら、MVC プロジェクトの Model フォルダーに配置します。

于 2013-09-28T19:00:14.770 に答える