1

まず、既存のaspnet_Usersテーブルを含むクエリをどのように処理するのですか?エンティティフレームワークコードfirst aspnet_Usersマッピング/結合

基本的に私は、私は、ユーザー名を返すことができるようにaspnet_Usersを伴うクエリのための要件が​​あります。

私は希望のLINQでの理想的
SELECT t.Prop1, u.Username 
FROM Table1 t 
INNER JOIN aspnet_User u ON t.UserId = u.UserId 
Where t.Prop2 = true 

from t in context.Table1 
join u in context.aspnet_Users on t.UserId equals u.UserId 
where t.Prop2 = true 

をしかし、私はありませんaspnet_UsersをクラスUserにマッピングする方法は? aspnet_Usersをdbsetの一部にするにはどうしたらいいですか?

すべてのヘルプはあなたが本当にaspnet_membershipプロバイダのアカウントにアクセスするエンティティフレームワークを使用する必要はありません、事前

答えて

0

で感謝をいただければ幸いです。実際には、メンバシップオブジェクトのインスタンスを作成し、一意のユーザー識別子と、ユーザーのLastActivityDate値を更新するかどうかを示すブール値を渡すだけで、そのメソッドがそのメンバのデータソースから現在の値で移入されたMembershipUserオブジェクトを返します。指定されたユーザー。

「ユーザー名」のプロパティを使用すると、ユーザー名にアクセスできます。

例:あなたはのMembershipProviderに関する追加の質問がある場合は

private MembershipUser user = 
    Membership.GetUser(7578ec40-9e91-4458-b3d6-0a69dee82c6e, True); 

Response.Write(user.UserName); 

、あなたは「Managing Users by Using Membership」のタイトルでMSDNのWebサイト上でそれをよく読んですることができます。

希望すると、これはあなたの要件にいくつか役立ちます。

+0

こんにちは、返信ありがとうございますが、私はちょうど1人のユーザーのユーザー名を欲しくないと思います。返されたユーザーの集まりがあれば、どうやって各行のユーザー名を取得できますか? – DotnetShadow

+0

これを使用することができます:MembershipUserCollection users = Membership.GetAllUsers();データベース内のすべてのユーザーのコレクションを取得します。他のコレクションと同じように、そのコレクションをforeachすることができます。 – Chris

2

aspnet_Usersテーブルまたはaspnetに関連する他のテーブルをマップしないでください。これらのテーブルには、独自のデータアクセスと独自のアクセスロジックがあります。これらのテーブルをマッピングすることで、コードの重複、問題の可能性が浮かび上がって、懸念が分かれます。クエリにユーザーが必要な場合は、ID、ユーザー名、電子メールなどの必要な情報のみを含むビューを作成し、ビューをマップします。ポイントは、ビューは読み取り専用で、許可されたデータのみを含み、アプリケーションはASP.NET APIを使用せずにこれらのデータを誤って変更しないという点です。

+0

ありがとうございます。これは、開発者がメンバーシッププロバイダを通じて与えられたクラスとメソッドを実際に使用すべきであることを指摘することで、私がやろうとしていたことです。 – Chris

+0

返信ありがとう、私の上記の例では、linqを使用してビューをより良く理解するために、SQLビューがあり、そのビューをマップして、さまざまなプロパティを持つuserinfoオブジェクトを指定していますか?そのオブジェクトをlinqで使用しますか?可能であれば例を提供することができますか? – DotnetShadow

+0

はい、それは私が意味するものです。 –

1

初めてのLadislavの答えを読んでください。まだ進めたい場合:ユーザとロールとメンバーテーブルをcodefirstドメインにマッピングすることが必要なのは、メンバーシッププロバイダをコードファーストで書くことです。

幸運にも、それは完璧な実装ではありませんが、http://codefirstmembership.codeplex.com/のプロジェクトがあります。元はVBで、C#MVCで動作させるための私の作業のためのDiscussionタブを見てください。

私は、メンバーシップデータ(パスワード、最後にログオンした日付、許可されていないすべてのデータ)を保護するより優れた実装について、著者と一緒に作業していますが、しかし、まだ準備ができていない!

関連する問題