【发布时间】:2020-09-14 15:01:32
【问题描述】:
我正在使用 MVC 的代码优先方法面临以下问题。
我有 1 个 Admin 模型,它有 2 个属性,分别代表一个单独的类,如下所示。
public class Admin
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public List<IdProof> IdProofDocs { get; set; }
public Subscription subscription { get; set; }
}
public class IdProof
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string File { get; set; }
}
public class Subscription
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public double TotalAmount { get; set; }
public double PaidAmount { get; set; }
}
当我尝试保存它时,它成功地将值保存在 3 个表中,包括管理模型的最后 2 个(即 IdProof、Subscription)。见下面代码
[HttpPost]
public ActionResult AddHotel(Admin admin)//saving correctly in 3 table i.e. admin, subscription,IdProof
{
dbContext.Admins.Add(admin);
dbContext.SaveChanges();
return RedirectToAction("someActionMethod");
}
到现在还不错,但是从这里开始
当我尝试使用以下代码获取记录时
public ActionResult AllAdmins()
{
List<Admin> ListAdmin= dbContext.Admins.ToList();//here its fetching records from admin table only ;(
return View(ListAdmin);
}
它只给我 Admin 表数据,而不是其他 2 个表***,即 IdProof 和 Subscription。我想知道 EF 通过其模型自动将数据保存在其他 2 个表中,所以在获取时为什么它没有从其他 2 个表中给我数据。
我在 mvc5 中使用 Code-First 方法,需要在我的代码中进行更改。我是 mvc 新手。
提前致谢
【问题讨论】:
标签: c# asp.net-mvc