質問

私は新しいウェブサイトとASP.NET IDを使用しています、そして、切り離された方法でこれを行う方法の例はたくさんありません。 Domain ModelのDomainUserクラスがMicrosoft.AspNet.Identity.EntityFramework.Userから継承する必要がありませんので、このようなクラスを作成しました。

public class IdentityUser : User
{
    public virtual DomainUser DomainUser { get; private set; }
}
.

ASP.NET IDで必要なDbSetsを、ドメインモデルとして同じ派生DbContextクラスに移動しましたこの回答に示すように。 Fluent APIを介してIdentityUserDomainUserにリンクしています。

modelBuilder.Entity<IdentityUser>().HasRequired(iu => iu.DomainUser).WithRequiredPrincipal();
.

これにより、DomainUserクラスで定義されている動作と認証の懸念をほとんど区別できます。これはそれらを1つのクラスに組み合わせるよりも優れていますが、まだ醜い感じます。私は私のドメインプロジェクトで必要なASP.Net Identityアセンブリへの参照がまだあります。ナビゲーションプロパティを可能にするが、それが対応していると感じ始めるために、IdentityUserクラスのみを保持しているもう1つのプロジェクトを作成することができました。

私は、それが厳密な結合をもたらすことなく、アイデンティティをドメインまでリンクするより良い、よりきれいで、よりモジュールな方法があるべきであるように感じます。

誰もがこれを扱うより良い方法を思いつくのですか?私はASP.NET IDプロジェクトに関わる人々の注意を向上させることを望んでいます( hao kung et al)ここで方向を提供する。

役に立ちましたか?

解決 2

事実は、IdentityUserから継承するつもりであれば、asp.NET ID関連のアセンブリが乗車に沿って来ているということです。IDをASP.NETから分離することはできません。質問の元の例では、ほとんどの場合、ドメインプロジェクトでIdentityUserを使用している場合は、IdentityUserから継承するだけではおそらく最適です。

本当にASP.NET関連のアセンブリを真に空いている場合は、Webプロジェクト内のID関連クラスを残して、ドメインプロジェクトに別のUserモデルを作成できます。href="https://stackoverflowflow.com/questions/28974687/where-should-ef-migrations-my-class-library-project-or-my-asp-net-project/2897510666">ここ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top