public ActionResult Index()
{
var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
var allCategories = db.ProfitCategories
.Where(x => x.IdUser.UserId==user)
我希望我的索引视图仅显示从当前用户写入的记录。我从这里获得了当前的userId
var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
和x.IdUser.UserId
是从db.ProfitCategories
到db.UserProfiles
的外键。编译时出现以下错误:无法应用运算符==
类型int
和Models.UserProfiles
。
答案 0 :(得分:3)
也许你应该尝试:
public ActionResult Index()
{
var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
var allCategories = db.ProfitCategories
.Where(x => x.IdUser.UserId==user.UserId)
您需要针对UserId检查UserId,而不是类。
修改强>
我认为你根本不需要得到用户:
public ActionResult Index()
{
var allCategories = db.ProfitCategories
.Where(x => x.IdUser.UserId==WebSecurity.CurrentUserId)
由于您已经在WebSecurity.CurrentUserId
中保存了用户ID,因此您不需要从数据库接收用户(至少不是为了获取其ID)。当然,如果您需要其他操作(我不知道因为您提供了一段代码),请随时接收用户:)