Итак, давайте посмотрим на ваши требования:
Альфа должна содержать ноль или более Бет .... Бета может принадлежать нолю или более Альф
Это отношение многие-ко-многим, поэтому вы должны отобразить его.
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Beta>()
.HasKey(b => new { b.Id, b.SequenceNumber });
modelBuilder.Entity<Alpha>()
.HasMany(a => a.Beta)
.WithMany();
}
Это создаст дополнительную таблицу в базе данных со столбцами trhee (возможно, называемыми Alpha_Id, Beta_Id и Beta_SequenceNumber).
Я до сих пор не понимаю, что вы подразумеваете под на основе Beta.Id . Если альфа может содержать только записи с одинаковыми бета-версиями, вам, вероятно, придется контролировать это в логике приложения. Это то, что потребует дополнительных сложных конструкций, которые должны быть реализованы с помощью сопоставления.