一尘不染

指定的包含路径无效。EntityType没有声明名称为*的导航属性

c#

我正在尝试将数据从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”的导航属性。

这是我的localDb和模型的图片。

知道为什么它不起作用吗?


阅读 657

收藏
2020-05-19

共1个答案

一尘不染

导航属性应为相关实体集合的实体类型。包括一些导航属性来 加入
一些相关实体或实体的当前实体。这样就可以在单个查询中渴望从多个表中加载数据。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
2020-05-19