C# Entity Framework 添加一对多关系条目

C# Entity Framework adding one to many relationship entries

在我的 DbContext class 中,我有 2 个具有一对多关系的表。

首先我创建了一个 Location 对象,然后我尝试添加一个引用 Location 对象的 ParkingSpot 对象,但是在数据库中,它没有添加 ParkingSpot对象到数据库。我做错了什么?

DbContext class:

public class ParkingDBContext : DbContext
{
    public ParkingDBContext() : base("DbConnectionString")
    {
    }

    public DbSet<Location> Locations { get; set; }
    public DbSet<ParkingSpot> ParkingSpots { get; set; }
}

Location class:

public class Location
{
    public Location()
    {
        ParkingSpots = new List<ParkingSpot>();
    }

    public string Id { get; set; }
    public virtual ICollection<ParkingSpot> ParkingSpots { get; set; }
}

ParkingSpot class:

public class ParkingSpot
{
    public string Id { get; set; }
    public virtual Location Location { get; set; }
}

我尝试添加新内容的方式 ParkingSpot:*

[HttpPost]
public ActionResult Create(string Id,string locationId)
{
    try
    {
        Location loc = dbContext.Locations.FirstOrDefault(x => x.Id == locationId);
        dbContext.ParkingSpots.Add(new ParkingSpot { Id = Id, Location = loc });
        dbContext.SaveChanges();

        return RedirectToAction("Index");
    }
    catch
    {
        return View();
    }
}

您在 ParkingSpot 中没有任何列来保存与其相关的 Location 的 ID。尝试将以下内容添加到 ParkingSpot:

public string LocationId {get; set;}

没有它,您将无法正确设置映射...