![](/img/trans.png)
[英]EF Core: One-to-one and One-to-many Relationships Between a Single Pair of Entities
[英]Storing One-To-One relationships in EF Core
我試圖將兩個實體保存到相互關聯的數據庫中,但是其中一個實體從不保存另一個實體的ID。
我有一個位置課程:
public string Name { get; set; }
public string Description { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public Company Company { get; set; }
[ForeignKey("OpeningTimeId")]
public OpeningTime OpeningTimes { get; set; }
我有一個OpeningTimes課:
public string Monday { get; set; }
public string Tuesday { get; set; }
public string Wednesday { get; set; }
public string Thursday { get; set; }
public string Friday { get; set; }
public string Saturday { get; set; }
public string Sunday { get; set; }
[ForeignKey("LocationId")]
public Location Location { get; set; }
然后,我試圖將它們保存到數據庫中,如下所示:
Location location = new Location()
{
Name = LocationDto.Name,
Description = LocationDto.Description,
Latitude = LocationDto.Latitude,
Longitude = LocationDto.Longitude,
Company = LocationDto.Company,
OpeningTimes = new OpeningTime() {
Monday = LocationDto.OpeningTimes.Monday,
Tuesday = LocationDto.OpeningTimes.Tuesday,
Wednesday = LocationDto.OpeningTimes.Wednesday,
Thursday = LocationDto.OpeningTimes.Thursday,
Friday = LocationDto.OpeningTimes.Friday,
Saturday = LocationDto.OpeningTimes.Saturday,
Sunday = LocationDto.OpeningTimes.Sunday,
}
};
_context.Locations.Add(location);
_context.SaveChanges();
將其保存到數據庫后,將填充Locations表中的OpeningTimeId列,但不填充OpeningTimes表中的LocationId列。
現在,在此特定示例中,我不一定需要填充LocationId列,但是我確實需要對其他實體執行此操作,並且我不確定為什么這不起作用。
您在類Location中未定義類型為Int和Identifier And主鍵的字段ID,一旦將記錄添加到表中,該鍵就會自動添加一個單位。 但是您可以作為向導在表的數據庫中執行此操作,但是您需要再次將其添加到教室,但是如果您想在類本身中添加屬性,則編譯器將在后台執行此操作。
喜歡:
[Key]
public int LocationId {get;set;}
public string Name { get; set; }
public string Description { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public Company Company { get; set; }
[ForeignKey("OpeningTimeId")]
public OpeningTime OpeningTimes { get; set; }
無需在兩個表中都有引用,只需從一個表中刪除。 對於一對一映射,您可以向表中的Referrerd外鍵列添加唯一約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.