2009-03-06 8 views
10

MS-Accessデータベースに既存のユーザーとその他のデータを持つアプリケーションを作成しています(実際には、再作成しています)。データはSQL Serverに移動され、その一部にはユーザーの移行が含まれます。私はEFを使用してORMを実行したいと思っています。データモデルがSQL Serverにどのようになるかはわかっています。私はEFの初心者ですが、ASP.NETではなく、ASP.NETのメンバーシップ機能を利用したいと思います。私はこれを行ういくつかの方法について考えており、いくつかのアドバイスをしたいと思います。これまでのところ私はこのアイデアについて少ししか研究していないのかもしれません。だから、ここでは関連する質問のクラスタに行きます。ASP.NETメンバシップでEntity Frameworkを使用できますか?

  1. EFは、私が気づいていないいくつかのクラスまたは名前空間を介してASP.NETメンバーシップと直接連携できますか?

  2. ユーザーシップを他のテーブルのデータと整列させるには、aspnet_ *テーブルとDotNetNukeテーブルの上にユーザーデータの別のテーブルを作成する必要がありますか?

  3. 私は、ユーザー認証のみのために組み込みのメンバーシップ関数を使用し、ユーザータグ付きデータを処理しているときにEFコンテキストに切り替えることを避けたいと考えています。 GridViewの列にバインドするユーザー情報をすべての行のメンバシップユーザーに渡すことで不便に思えるかもしれませんが、それが必要なのでしょうか?私はそれを吸う必要があり、データ取得の目的のためにEFのメンバーシップクラスを複製しますか?

  4. 私はおそらくプロバイダが全体のEFデータモデルの中に座っている可能性があるという考えで、メンバーシップのための何らかのEFプロバイダを実装しようと考えていました。これは狂った話ですか? (前に自分のプロバイダを書いたことはありません)

私には意味がありません。

答えて

5

どうしてそんなことはしませんか? asp.net用の独自のメンバシッププロバイダを実装できます。必要なモデルを使用します。

必要な機能が組み込みasp.netメンバーシップの実装と完全に一致しない場合は、独自のプロバイダをロールすることができます。いくつかのフィーチャだけを使用する場合は、いくつかのメソッドを実装する必要があります(すべてのメソッドの実装を満たす必要はありません)。サポートされている機能より多くの機能が必要な場合は、メンバーシップ・プロバイダーを使用することができます。

+0

もしそうすれば、EFのクラス/ EDMでうまく折り畳まれますか?私はあなたがEFがデータベースの代わりにバックエンドだったかのようにプロバイダをロールすることができると思いますか?また、ハッシュのようなものをしているのはデータベース層かWeb/UI層ですか? – oasasaurus

+0

はい、あなたは必要な機能に関連するメソッドを実装します。必要なものはすべて、つまりado.net、linq2sql、EF、[任意のORMを挿入]、Webサービスを呼び出します。 – eglasius

+0

実際にあなたにそれを強制するのではなく、Web UIレイヤーにすることです。基本のMembershipProviderクラスには暗号化/復号化のためのメソッドがいくつかありますが、カスタムプロバイダでは使用していません。 – eglasius

2
  1. メンバーシップテーブルはマップしません。 SQLメンバシッププロバイダの使用は想定しないでください。
  2. DB IDではなくユーザーIDをマップします。微妙だが重要。再度、他のメンバーシッププロバイダ(たとえば、ドメイン認証)が存在することに注意してください。
  3. 質問を明確にすることはできますか? EFモデルのメンバーシップ情報をすべて複製する必要はありませんが、既知のアイデンティティのリストが必要です。
  4. いいえ、まったく狂っていますが、難しく、おそらく不要です。
+0

#3の説明:ユーザーが入力したデータのテーブルからレコードをデータバインドしたいとします。表示したいフィールドの1つが、そのテーブルにないユーザーの電子メールです。 Emailプロパティを持つEF Userクラスが必要ですか?各行を繰り返してMembership.GetUserを呼び出す必要がありますか? – oasasaurus

+0

SQLベースであるかどうかにかかわらず、任意のメンバーシップ・プロバイダで動作するソリューションが必要な場合は、提案内容をデータベースに複製するか、レプリケートされたテーブルをマップする必要があります。 –

関連する問題