繁体   English   中英

EntityFramework 与 MVC C# 连接不显示任何内容

[英]EntityFramework Join with MVC C# not displaying anything

我正在使用创建本地数据库的 EntityFramework,我想执行 Join 操作以显示为每个客户完成的购买,但我看不到让它工作。

这是我的客户 Model

public class Customer
{
    [Key]
    public int custId { get; set; }
    public string firstName { get; set; }
    public string surname { get; set; }
    public string addresss { get; set; }
}

这是我的采购 Model

public class Purchase
    {
        public int purchaseId { get; set; }
        public int custId { get; set; }
        public int productId { get; set; }
        public double price { get; set; }
        public int quantity { get; set; }

        public double deliveryFees { get; set; }
        public double finalAmount { get; set; }
        
        [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
        public DateTime dateOfPurchase { get; set; }
 
    }

我试图创建一个 ViewModel,它应该将每个 Model 保留在 class 中,以便我可以执行连接,如下所示:

 public class ViewModel
    {
        public Customer customer { get; set; }
        public Purchase purchase { get; set; }
        public List<Customer> customers;
        public List<Purchase> purchases;
    }

我已经为 ViewModel 创建了一个 Controller 来尝试

public ActionResult Index()
        {
            using (db)
            {
                var cust = (from p in db.PurchaseList
                            join c in db.Customers on p.custId equals c.custId
                            select new
                            {
                                id = p.custId,
                                firstName = c.firstName,
                                surname = c.surname,
                                total = p.finalAmount.ToString()
                            }

                    ).ToList();
                return View(cust);
            }
        }

db 变量是我正在使用的数据库的上下文。

public Context() : base("name=Context")
        {
        }
         public void CreateDatabase()
        {

        }
        public System.Data.Entity.DbSet<Models.Offer> Offers { get; set; }

        public System.Data.Entity.DbSet<Models.Employee> Employees { get; set; }
        public System.Data.Entity.DbSet<Models.Customer> Customers { get; set; }
        public System.Data.Entity.DbSet<Models.User> Users { get; set; }
        public System.Data.Entity.DbSet<Models.Purchase> PurchaseList { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }

在我的视图页面中,我只做一个 foreach 来检索数据,但它始终是空的。 你有什么建议吗? 我应该对上述使用不同的方法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM