【发布时间】:2012-08-02 04:14:17
【问题描述】:
在下面的代码中,我试图获取当前登录用户的个人资料。
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
【问题讨论】:
-
UserId属性的类型是什么? -
UserId 是数据库中的字符串。
标签: asp.net-mvc vb.net asp.net-mvc-3 entity-framework