在我的ASP.NET Core 1.1
,EF-Core 1.1 app
中,我正在parent view
中显示partial view
的数据。场景类似于以下内容:Customers and Orders table
和Customers and Address table
之间的一对一关系。用户从父视图的下拉列表中选择一个客户,该下拉列表具有显示所选客户的相应订单的部分视图。控制器正确地将客户订单详细信息发送到视图。但是,如果我将地址实体替换为订单实体,则传递给部分视图的模型始终为空。
问题:我在这里可能缺少什么?
注意:通过放置断点,我已经验证下面的控制器正确地将所选客户的记录发送到父视图,我还检查了Db该客户有相应的地址地址表中的记录。另一个观察是,即使我通过Visual Studio控制台删除FK-relationship
和customer
和order
实体之间的address
,然后重新创建这些关系,问题仍然是相同的 - 即,它适用于order
,但不适用于address
实体。我还在Db中验证了为这两个表正确创建了FK-relationship
。
父:
public class Customer
{
[Key]
public int CustomerId{ get; set; }
public string Name { get; set; }
....
....
public Order order { get; set; }
public Address address { get; set; }
}
一个孩子:
public class Order
{
[Key]
public int OrderId{ get; set; }
public float Price { get; set; }
....
....
public int? CustomerId { get; set; }
public Customer customer{ get; set; }
}
另一个孩子:
public class Adress
{
[Key]
public int AdressId{ get; set; }
public string street { get; set; }
....
....
public int? CustomerId { get; set; }
public Customer customer{ get; set; }
}
控制器:
....
....
Customer mycustomer = _context.Customer.Include(c => c.order).Where(c=> c.CustomerId== selectedId).SingleOrDefault();
....
....
return View(mycustomer);
家长视图:
@model MyProj.Models.Customer
....
@Html.Partial("Partial_orders", Model.order)
....
部分视图:
@model MyProj.Models.Order
....
<div>@Model.CustomerId<div>
....
答案 0 :(得分:0)
我认为问题在于,在您的控制器中,您忘记在获取客户时包含地址。
从
改变Customer mycustomer = _context.Customer
.Include(c => c.order)
.Where(c => c.CustomerId == selectedId)
.SingleOrDefault();
以强>
Customer mycustomer = _context.Customer
.Include(c => c.order)
.Include(c => c.address)
.Where(c => c.CustomerId == selectedId)
.SingleOrDefault();
答案 1 :(得分:0)
那是我的坏事。在地址的情况下,有人后来禁用了FK关系,并且地址表是孤立的。感谢那些可能试图提供帮助的人。