0

私は、EFコードファーストを使用したMVC4で新しいSimpleMembershipプロバイダーがどのように機能するかについて頭を悩ませているところです。これまでのところ、すべてがうまく機能していますが、よくわからないことがあります。

SimpleMembershipは、次のコード行の結果として、いくつかのテーブルを自動作成します。

WebSecurity.InitializeDatabaseConnection("DatabaseContext", "User", "Id", "Email", autoCreateTables: true);

ドメイン固有のすべてのユーザーデータを保存するための「User」というコードファーストエンティティがあります。したがって、WebSecurityクラスを使用すると、さまざまな方法で必要なユーザーIDを取得し、ユーザーエンティティにクエリを実行してドメイン固有のデータを取得できます。ただし、SimpleMembershipが自動作成する「webpages_xxxx」テーブルのPOCOクラスがないため、EFを介してそれらに簡単にアクセスすることはできません。具体的には、webpages_Membershipテーブルを取得して、ユーザーIDを持っているときに、「IsConfirmed」、「PasswordVerificationToken」などのフィールドを取得できるようにすることに関心があります。

常識では、テーブル構造を表すためにいくつかのPOCOクラスをコーディングする必要があると言われていますが、もう少し独創的なものがあるはずだと感じています。Microsoftは、テーブル構造を表すために独自のPOCOクラスをコーディングするだけでよいのでしょうか、それとも何かが足りないのでしょうか。

4

1 に答える 1

0

私が理解した場合、あなたのシナリオは次のとおりです。SimpleMembershipを使用しますが、テーブルが同じDBにあるコードを最初に使用してデータにアクセスします。

これは可能です。 このような目的のために、EFチームの素晴らしいツールhttp://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19dを使用しています。

EF powertoolを使用 すると、既存の DB にアクセスするための CodeFirst コードを生成できます。

方法: パワーツールをインストールします。(上記のリンクを参照してください) コードが表示されるプロジェクトにマウスを置きます。プロジェクトを右クリックし、Entity Framework を選択し、データベースから codefirst をリバース エンジニアリングします。

ビンゴ。モデルと YOUR コンテキストに追加できる POCO クラス。また、メンバーシップ テーブルを標準で読み書きできます。

于 2012-12-30T05:47:49.160 に答える