0
public ActionResult Index()
{
      var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);
      var allCategories = db.ProfitCategories
          .Where(x => x.IdUser.UserId==user)

我希望我的索引视图只显示当前用户写入的记录。我从这里得到当前的用户 ID

var user = db.UserProfiles.FirstOrDefault(x => x.UserId == WebSecurity.CurrentUserId);

并且 x.IdUser.UserId是从db.ProfitCategoriesto的外键db.UserProfiles。编译时出现以下错误:无法应用运算符==类型 intModels.UserProfiles.

4

1 回答 1

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)

由于您已经保存了用户 ID,因此WebSecurity.CurrentUserId您不需要从数据库接收用户(至少不需要获取其 ID)。当然,如果您需要它来执行其他操作(我不知道,因为您提供了一段代码),请随时接收用户 :)

于 2013-03-08T08:32:28.537 回答