0

私はMVC3にかなり慣れていないので、ユーザーがログインして最近の注文を見ることができる注文画面を作成しようとしています。データベースからユーザー名の値を取得し、現在ログインしているユーザーと比較して、各ユーザーが自分の注文のみを表示し、他のユーザーは表示できないようにしようとしているため、これは問題です。ただし、ログインしているユーザー名と比較するために、データベースの値を文字列として変換するのに苦労しています。

これが私のモデルです

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace Assignment2.Models
{
    public partial class Order
    {
        [ScaffoldColumn(false)]
        public int OrderId                      { get; set; }

        [ScaffoldColumn(false)]
        public System.DateTime OrderDate { get; set; }

        [ScaffoldColumn(false)]
        public string Username                  { get; set; }

        [Required(ErrorMessage = "First Name is required")]
        [DisplayName("First Name")]
        [StringLength(160)]
        public string FirstName                 { get; set; }

        [Required(ErrorMessage = "Last Name is required")]
        [DisplayName("Last Name")]
        [StringLength(160)]
        public string LastName                  { get; set; }

        [Required(ErrorMessage = "House Number/Name")]
        [StringLength(70)]
        public string House                  { get; set; }

        [Required(ErrorMessage = "Street Name is required")]
        [StringLength(70)]
        public string Address1                  { get; set; }

        public string Address2                  { get; set; }

        [Required(ErrorMessage = "City is required")]
        [StringLength(40)]
        public string City                      { get; set; }

        [Required(ErrorMessage = "County is required")]
        [StringLength(40)]
        public string County                    { get; set; }

        [Required(ErrorMessage = "Post Code is required")]
        [DisplayName("PostCode")]
        [StringLength(10)]
        public string Postcode                  { get; set; }

        [Required(ErrorMessage = "Country is required")]
        [StringLength(40)]
        public string Country                   { get; set; }

        [Required(ErrorMessage = "Phone number is required")]
        [StringLength(24)]
        public string Phone                     { get; set; }

        [Required(ErrorMessage = "Email Address is required")]
        [DisplayName("Email Address")]
        [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}",
        ErrorMessage = "Email is is not valid.")]
        [DataType(DataType.EmailAddress)]
        public string Email                     { get; set; }

        [ScaffoldColumn(false)]
        public decimal Total                    { get; set; }


        public List<OrderDetail> OrderDetails   { get; set; }
    }
}

そして、これが私がコントローラーでやろうとしていることです

using System.Web.Security;
using System.Web.Mvc;
using Assignment2.Models;

namespace Assignment2.Controllers
{
    public class OrderController : Controller
    {
        private RevolutionEntities db = new RevolutionEntities();

        public ViewResult Index()
        {
            string loggedinuser = User.Identity.Name;
            string username =   
                            from a in db.Orders
                            where a.Username == loggedinuser
                            select a;                            
            return View();
    }
}

ありがとうジェイミー

4

1 に答える 1

0
var orders = db.Orders.Orders(p=>p.UserName == loggedinuser);
于 2012-04-12T13:52:12.513 に答える