在下面的代码,我想这应该是当前登录用户的配置文件。错误获取记录“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