次のコードでは、現在ログインしているユーザーのプロファイルを取得しようとしています。
Dim userProfile = db1.UserProfiles.Where(Function(p) p.UserId = Membership.GetUser.ProviderUserKey).Single
エラーは、「LINQ to Entities はメソッド 'System.Object CompareObjectEqual(System.Object, System.Object, Boolean)' メソッドを認識しないため、このメソッドをストア式に変換できません」です。
誰かがこれの何が悪いのか知っていますか、それとももっと良い方法がありますか...そして、どうすればこれをより安全にすることができますか; つまり、レコードが見つからない場合に条件を追加しますか?
VB ASP.NET MVC 3 を使用しています。
ありがとうございました。
編集:
これが私の新しいコードです:
Dim db1 As UserProfileDbContext = New UserProfileDbContext
Dim user = Membership.GetUser()
Dim key As Guid = user.ProviderUserKey
Dim finalKey = key.ToString
Dim userProfile = db1.UserProfiles.Where(Function(p) p.UserId = finalKey).Single
Dim companyId = userProfile.CompanyId