4

私は現在、MVC3、EF4.1を習得しており、実際にコードファーストアプローチが好きです。MVC3 + EF4.1コードまず、.NETメンバーを使用していますか?

ただし、組み込みの.NET Memembership Providerと生成されたDBを使用したいと思います。

私がうまくいかないのは、メンバーシップDBにリンクするためにドメインをコード化する方法と、DBをEF経由で生成する方法です。私はDBを生成するために適切なスクリプトを実行することができますが、これはうまくいかず、実際には正しく感じられません。

私は完全な答えを期待していませんが、私は本当にこれを達成する方法を説明するチュートリアルの指示を指摘する必要があります。

唯一の答えは、自分自身のメンバーシッププロバイダを実装してOKですが、MVCが実装済みの状態で出荷されていることを考慮すると、多くの不必要な作業が発生しているように感じます。あなたのメンバーシップのテーブルは、ドメインテーブルとは異なるデータベースにある場合

よろしく、

ウェイン

+0

...あなたのカスタムDBメンバーシップやデフォルトのDBは、Web管理ツールをビジュアルスタジオから実行して使用して作成し、ユーザーを管理することで作成できます –

+0

メンバーシップを置き換えることは、アプリケーションを起動した後、 –

+0

私は、EFで最初にコードを始める人々を助けてくれるブログ記事をまとめました:http://www.terric.co.uk/code-first-entity-framework-and-sql-migrations/メンバーシッププロバイダに関しては、組み込みプロバイダーを使用して、生成されたEFデータベースに接続文字列をポイントするだけで済みます。ドメインのapp.config(クラスライブラリの場合)でこの接続を行い、関連する名前空間を使用して、ドメインにMicrosoftの認証エンジンを組み込みます。 –

答えて

0

は、あなたはEFで単一DbContextを使用することはできません。ここで行うことができるのは、これらの各データベースのSecurityContextとDomainContextという2つのコンテキストを作成できることです。しかし、このコンテキストのそれぞれに存在するエンティティに参加することによって照会することはできず、両方のコンテキストはデータベースを更新するとき(つまり単一の作業単位ではない)、同じトランザクションを使用しません。

2つのデータベースではなく、データベースにメンバーシップテーブルを作成することをお勧めします。次に、ここでは単一のDbContext(または完全に独立している場合はイベント2)を使用できます。ここで、すべての表、列および関係を正しくモデル化した場合、EFを使用してデータベース全体を生成できます。しかし、私は正しくSqlMembershipProviderストアドプロシージャを使用して覚えている場合。そうであれば、データベース全体を作成するのに少し問題があります。

さらに詳しい情報を提供できる場合は、より具体的な解決策を提示する方が簡単です。

0

私が行ったことは、Microsoft(http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx)で設定されたルールを使用してカスタムMembershipProviderを作成することでした。しかし、私はコードを最初に使っています。デザイナーでテーブルを作成した後、自分のデータベースを作成しました。私の構造が健全な状態になった後、MembershipProviderを作成し、私が必要としていた機能だけを実装しました。私が使用しなかったものの例外を投げていました。

@ Erangaの答えに似た何かを使用することもできますが、おそらくここで使用されているデータベース準備ステップを使用してください:http://www.brianhawkinstech.com/development/120-preparing-your-ms-sql-database-for-use-with-aspnet-membership-provider。これにより、SqlMemberhipProviderに必要なストアドプロシージャも作成されます。私はそれがデータベースの最初のアプローチではうまくいくが、コードの最初のアプローチではどのように動作するのかは不明だ。

上記の2項でアプローチを使用することの複雑さは、カスタムメンバーシップアプローチを使用した理由です。このアプローチの良い点の1つは、将来のプロジェクトでコードを再利用できることですが、もちろん時間がかかるアプローチです。

関連する問題