[英]Entity Framework, Saving a Collection of Enums
我有一個表格來保存聯系人的電話號碼。 在表格中,我有綁定到每個電話號碼的電話限制。 電話限制存儲為枚舉,但它們可以有多個電話限制。 當我嘗試創建遷移時出現錯誤
無法映射屬性“PhoneNumber.Restrictions”,因為它屬於“ICollection”類型,它不是受支持的原始類型或有效的實體類型。 顯式映射此屬性,或使用“[NotMapped]”屬性或使用“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略它。
我看過一些教程說使用標志,但沒有太多關於它的信息/不清楚如何使用,教程來自 5 多年前。
我的問題是我們在實體框架中存儲電話限制列表的最佳方式是什么?
代碼
public class PhoneNumber
{
public int Id { get; set; }
public string PhoneNumber { get; set; }
public ICollection<PhoneRestrictions> PhoneRestrictions { get; set; }
}
public enum PhoneRestrictions
{
None = 0,
DaysOnly = 1,
DoNotCallDays = 2,
Evenings = 3,
NoWeekends = 4
}
實體框架只能看到它們在技術上是什么的enum
值:一個int
。 最容易做的事情,在我看來,是創建一個簡單的定義表( PhoneRestriction
)與Id
和Name
/ Description
欄,然后創建之間的許多一對多的關系PhoneNumber
和PhoneRestriction
在你DbContext
。
modelBuilder.Entity<PhoneNumber>()
.HasMany(a => a.PhoneRestrictions)
.WithMany()
.Map(a => a.MapLeftKey("PhoneNumberId")
.MapRightKey("PhoneRestrictionId")
.ToTable("PhoneNumberPhoneRestriction"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.