ここでこの種の質問をたくさん見てきましたが、回答がないか、私が尋ねている質問とまったく同じではないか、必要な詳細ではないかのいずれかです。
大まかなリファレンス ビューとして、プロジェクトのスクリーンショットを以下に示します。
- 私の「サンプル」ソリューションでは、現在
Sample.Data.Model
、データベース ファースト モデルの edmx ファイルを含む というプロジェクトがあります。 - この MSDN チュートリアルの手順に従って、自動生成された POCO クラスを別のプロジェクトに移動し、
Sample.Data.Entities
. - 次に、
Sample.Data.Entities
プロジェクトでプロジェクトを参照し、Sample.Data.Model
すべての使用を修正して、プロジェクトが正常にビルドされるようにしました。 - もちろん、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 ファイルと同じプロジェクトに配置します。