2017-02-09 12 views
1

私は含まれているレイヤードMVCアプリケーションを作成しています。別のプロジェクトでAsp.net ID 2を移動

  • モデル層:インフラストラクチャが含まれています:EF

  • データ層のための任意の参照を使用していません。 (リポジトリと作業の単位)とEntity Frameworkの

  • サービス層

  • ウェブ層で参照この層。

enter image description here

私はAsp.netのidentity2を使用しています。私がやっていることは、モデルレイヤーにApplicationUserクラスを使用しており、参照モデルレイヤーはEntity frameworkMicrosoft.AspNet.Identity.EntityFrameworkになりました。 エンティティフレームワークへの参照を使用してデータレイヤとモデルレイヤの両方を作成しながら自分自身を繰り返していると感じる場合は、より良い方法があるかどうかを尋ねています。

+0

ここに私の答えを見てみましょうhttp://stackoverflow.com/a/38673203/5233410 – Nkosi

答えて

1

私は、私は完全にあなたの質問を理解すると思いますが、あなたのドメインオブジェクトモデルを使用してIDモデルを混合しませ考慮していない:

ASP.NETアイデンティティは、プレゼンテーション層のロジックであり、あなたはそれは良いアイデアだ場合は考慮する必要がありますそれを最上位レイヤー(Web)から切り離します。

私は、モデルまたはドメインプロジェクトをEntityフレームワークだけで保持し、プレゼンテーションに直接関連するオブジェクトと混合しないようにすることをお勧めします。あなたがこの記事を見てみることができます

https://aarcoraci.wordpress.com/2017/02/15/asp-net-mvc5-entity-framework-repository-pattern-and-unit-of-work-revisited/

+0

ありがとうございます。ドメインモデルのクラスとdbo.aspnetusersの間でナビゲーションプロパティを作成する必要がある場合はどうすればよいですか? – MeraSadek

+0

私が過去にしたことは、共通の財産です。 ASP.Net Identityを使用すると、電子メール(常に一意でなければならない)にアクセスできます。これにはUser.Identity.Name でアクセスできます。後で行う必要があるのは、同じプロパティを持つユーザーのドメインオブジェクトを照会するだけです。 好きなように独自のプロパティを作成することができます。両方のテーブルの間に共通点があります。 – aarcoraci

関連する問題