我正在尝试将数据从LocalDb获取到我的MVC控制器中。我尝试了这个:UsersContext db = new UsersContext();var users = db.UserProfiles.Where(u => u.UserId == WebSecurity.CurrentUserId) .Include(u => u.LastName).ToList();它返回此错误:指定的包含路径无效。EntityType“ ChatProj.Models.UserProfile”未声明名称为“ LastName”的导航属性。知道为什么它不起作用吗?
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
导航属性应为相关实体集合的实体类型。包括一些导航属性意味着加入了一些相关的实体或实体的当前实体。这样就可以在单个查询中渴望从多个表中加载数据。LastName不是导航属性-它是一个简单字段,默认情况下会加载,您无需添加它:
UsersContext db = new UsersContext();
var users = db.UserProfiles.Where(u => u.UserId == WebSecurity.CurrentUserId)
.ToList();
该查询将被翻译成类似
SELECT UserId, UserName, LastName, FirstName
FROM UserProfiles
WHERE UserId = @value
炎炎设计
TA贡献1808条经验 获得超4个赞
如果您只想检索LastName,请使用
Select(m => m.LastName)
所以
var users = db.UserProfiles
.Where(u => u.UserId == WebSecurity.CurrentUserId)
.Select(u => u.LastName)//not Include
.ToList();
LastName 只是模型中的字符串(标量属性),而不是导航属性(与另一个实体的关系)
- 3 回答
- 0 关注
- 988 浏览
添加回答
举报
0/150
提交
取消