質問

これを例として使用します...

UserProfileテーブルの列は次のとおりです。
   ProfileID (プライマリキー)
   UserID (外部キー)
   住所
   電話番号

今、LINQ to Entitiesを使用して新しいユーザーをデータベースに追加したい場合、ここで私がやっていることは次のとおりです。

UserProfile profileToAdd;
profileToAdd.ProfileID = 0;
profileToAdd.Address = "123 MyStreet";
profileToAdd.PhoneNumber = "123-4567";
/* How do I add in the UserID here? */

_myDB.AddToUserProfiles(profileToAdd);

いくつかの質問...

  1. 外部キーの処理について知っておく必要のある特別なものはありますか、それともAddressまたはPhoneNumberで行ったように割り当てることができますか?

  2. UserIdはGuidであり、現在のユーザーのUserIdから取得する必要があります。 MembershipクラスまたはUserクラスにアクセスできないようです(これはC#ライブラリであるため、何らかの方法で参照する必要があると推測していますが、プロジェクトは既にライブラリを参照しているため、参照し直すことはできません。循環依存関係があります)

  3. Guidの扱い方がよくわかりません。 getProfileByUserName(string userName)を実装するとき、ここに私の問題があります...

まず、UserIDを取得できません。ここで試しました:

Guid currUser = (Guid)from user in _ myDB.aspnet_Users
                             where user.UserName == userName
                             select new { user.UserId };

しかし、何らかの理由でGUIDにキャストできないと言っています。

これらの質問のいずれかに洞察を提供できる場合、私は非常に感謝します!

ありがとう、
マット

役に立ちましたか?

解決

データベースに外部キー関係の適切な制約が含まれる場合、 UserProfile クラスに User オブジェクトを指すメンバーが必要です。名前は、 UserProfileUser またはそのようなもののように、少し変わっているかもしれません。

ただし、図でこの名前を変更できます。ユーザーエンティティオブジェクトへのポインタを設定するだけで、フレームワークが正しいIDを割り当てます。

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