Я новичок в ASP.NET и EF, но имею опыт работы с Ruby MVC. Я работаю над сложным приложением, которое имеет от одного до многих отношений, поэтому я создал небольшой проект, с которым я могу играть и тестировать генерация CodeFirst, и что может быть веселее, чем тестирование с помощью гитарного проекта! Все вы, музыканты, знакомы с отношением друг к другу, так как у одного гитариста есть несколько гитар и усилителей. Этот код работает в том, что он создает базу данных и таблицы, когда я засеваю их. Просто хотел бы получить советы о том, как это сделать лучше и какие-либо возможные ошибки?Создание модели CodeFirst с внешними ключами
Благодаря
namespace GuitarCollector.Models
{
public class Guitarist
{
public Guitarist()
{
Guitars = new List<Guitar>();
Amplifiers = new List<Amplifier>();
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public List<Guitar> Guitars { get; set; }
public List<Amplifier> Amplifiers { get; set; }
}
public class Guitar
{
//Primary Key
public int Id { get; set; }
//Foreign Key
public int GuitaristId { get; set; }
public int YearOfManufacture { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public string Finish { get; set; }
public string SerialNumber { get; set; }
public double AppraisedValue { get; set; }
Guitarist Guitarist { get; set; }
}
public class Amplifier
{
//Primary Key
public int Id { get; set; }
//Foriegn Key
public int GuitaristId { get; set; }
public int YearOfManufacture { get; set; }
public int Wattage { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public string SerialNumber { get; set; }
public double AppraisedValue { get; set; }
public Guitarist Guitarist { get; set; }
}
}
имен GuitarCollector.DAL { общественного класса GuitaristContext: DbContext {
public DbSet<Guitarist> Guitarists { get; set; }
public DbSet<Guitar> Guitars { get; set; }
public DbSet<Amplifier> Amplifiers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
Если вы хотите идентичностей для вас PK украшают с 'DatabaseGeneratedAttribute (DatabaseGeneratedOption.Identity)' Вам может понадобиться, чтобы украсить свои поля FK с 'ForeignKey («»)' атрибутами где '' является навигация собственности отношения. Если вы не планируете получать доступ к полям FK ID в своем приложении, их можно опустить из вашей модели –
Moho