#entity-framework #.net-core #asp.net-core-webapi
#entity-framework #.net-ядро #asp.net-core-webapi
Вопрос:
я новичок в .net core и ef, и я хотел бы получить некоторую помощь по поводу небольшого проекта, который я делаю (.Net Core WebAPI)
Чтобы уточнить, что я делаю, вот диаграмма:
И вот код, который я написал как классы моделей:
Правильно ли весь этот код представляет то, что я пытался сделать? Должен ли я сначала объявлять реквизиты, такие как идентификатор, а затем реквизит другого типа класса с аннотацией [ForeignKey]? Также, например, если я хочу выполнить post-запрос с информацией о символе, должен ли я отправлять json таким образом?:
{
"Name":"Lost Vayne Meliodas",
"Awaken":6,
"Level":80,
"AttributeId":1,
"RarityId":4
}
Спасибо!
Ответ №1:
Вы должны использовать FluentAPI.
В вашем классе dbcontext у вас должно быть 3 набора баз данных следующим образом
public DbSet<Character> Character { get; set; }
public DbSet<Rarity> Rarity { get; set; }
public DbSet<Attribute> Attribute { get; set; }
//You need to have a OnModelCreating method in the same dbcontext class
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Rarity>()
.HasMany(c => c.Characters)
.WithOne(e => e.Rarity);
modelBuilder.Entity<Attribute>()
.HasMany(c => c.Characters)
.WithOne(e => e.Attribute);
}
Добавьте это в свою таблицу редкостей
public ICollection<Character> Characters { get; set; }
Добавьте это в свою таблицу атрибутов
public ICollection<Character> Characters { get; set; }
Комментарии:
1. Спасибо за совет! Также лучше использовать FluentAPI, чем аннотации данных? Кроме того, почему я должен добавлять эту коллекцию к атрибутам и редкостям? не лучше ли получить их через символы?