0
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の外部キーです。コンパイル時に次のエラーが表示されます: Can not apply operator type and .db.ProfitCategoriesdb.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 に答える