У меня есть сценарий в первом коде Entity, где мне нужно ограничение ключа foriegn между 2 таблицами, чтобы быть от 1 до 1 без использования первичных ключей обеих таблиц.Отношения 1 к 1 с использованием внешнего ключа в коде сначала EF 6
Учитывая следующую модель:
public class Appointment
{
[Key]
public int Id { get; set; }
}
public class InitialAppointment : Appointment
{
public int UserId { get; set; }
[ForeignKey("UserId")]
public User User { get; set; }
}
public class User
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public InitialAppointment InitialAppointment { get; set; }
}
User
может иметь только 1 дополнительный initial appointment
, первоначальное назначение наследует от Appointment
: так я ожидаю, что отношения между всеми 3 таблицы, чтобы быть 1 - 1, но запись пользователя и запись о записи может существовать сама по себе. Однако первоначальное назначение не может существовать без Пользователя или назначения.
Когда я пытался реализовать это я использовал Fluent API для specity следующего (наряду с указанными выше аннотациями):
modelBuilder.Entity<User>()
.HasOptional<InitialAppointment>(u => s.InitialAppointment)
.WithRequired();
вопросом является Entity Framework не правильно создание таблиц, они генерируются как так:
Как я могу сказать, рамку сущности через аннотацию данных или Fluent API, что пользователь должен иметь дополнительное 1 - 1 отношение с первоначальным назначением и первоначальным назначением должна InH erit (через отношения 1 - 1) с назначением?