Я пытаюсь реализовать модель в Code First для этой основы c сущностей:
public class CompanyType{ public int Id {get;set;} public string CompanyType {get;set;} } public class Company{ public int Id {get;set;} public string Company {get;set;} public string idCompanyType {get;set;} //Related 1-1 to CompanyType } public class Employee{ public int Id {get;set;} public string Company {get;set;} public int idCompany {get;set;} // --> Here I have to relate idCompany with CompanyId ( 1 company , N Employee }
Вопросы:
Благодаря поддержке
public class CompanyType{ public int Id {get;set;} public string CompanyType {get;set;} } public class Company{ public Company() { Employees = new HashSet<Employee>(); } public int Id {get;set;} public string Company {get;set;} public int CompanyTypeID public virtual CompanyType CompanyType {get;set;} public virtual ICollection<Employee> Employees { get; set; } } public class Employee { public int Id {get;set;} public int CompanyID {get;set;} public virtual Company Company {get;set;} } public class SomeContext : DbContext { public SomeContext() : base("SomeContext") { } public DbSet<CompanyType> CompanyTypeSet { get; set; } public DbSet<Employee> EmployeeSet { get; set; } public DbSet<Company> CompanySet { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } }
Это в основном, как сначала настроить ваши отношения в коде EF
Сводка
для второй части вашего вопроса вы можете обратиться к этим ссылкам, чтобы взвесить ваши варианты
В чем преимущество CodeFirst перед Database First
EF-код-первый подход к базе данных-первый подход
3 причины использовать код первый дизайн
1) Без комментариев, так как я никогда им не пользуюсь.
2) Подход, основанный на базе данных, наиболее эффективен. Экономьте много своего времени. Да, спроектируйте таблицы на SQL сервере, затем запустите Scaffold-DbContext.
Насколько моя точка зрения, должна зависеть от человека, от того, насколько ему комфортно. Если вы хорошо разбираетесь в SQL, спроектируйте сначала db, а затем scaffold. Если вы хорошо владеете c#, используйте первый подход к коду