在下面的代碼,我想這應該是當前登錄用戶的配置文件。錯誤獲取記錄「LINQ到實體無法識別方法」
Dim userProfile = db1.UserProfiles.Where(Function(p) p.UserId = Membership.GetUser.ProviderUserKey).Single
的錯誤是「LINQ到實體無法識別方法'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
「UserId」屬性的類型是什麼? – nemesv 2012-08-01 19:53:56
UserId是來自數據庫的字符串。 – user1477388 2012-08-01 19:56:18