Структура сущности один в один свободно API
Есть ли способ настроить отношение один к одному, используя только Fluent API? (Нет аннотаций данных).
Мне нужно что-то вроде этого:
public class User
{
public int Id {get;set;}
public string Name {get;set;}
}
public class Address
{
public int Id{get;set;}
public string Address {get;set;}
public User User {get;set;}
public int UserId {get;set;}
}
Адрес имеет идентификационный идентификатор, но также и внешний ключ для пользователя (UserId). Является ли это возможным?
1 ответ
Нечто подобное для вашего случая User/Address должно работать:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Address>()
.HasKey(e => e.UserId);
modelBuilder.Entity<Address>()
.Property(e => e.UserId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
modelBuilder.Entity<Address>()
.HasRequired(e => e.User)
.WithRequiredDependent(s => s.Address);
base.OnModelCreating(modelBuilder);
}
Для получения более подробной информации о Entity Framework Fluent API вы можете обратиться к этому или этому.
Если у вас уже есть база данных и вы хотите сгенерировать для нее POCO, вы можете использовать такой инструмент, как этот
Надеюсь, это поможет.