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;}
没有它,您将无法正确设置映射...
在我的 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;}
没有它,您将无法正确设置映射...