Сопоставление внешнего ключа в отношении HasOptional (). WithOptionalDependent () в Entity Framework 6

У меня есть следующая модель данных в Entity Framework 6.1.3:

using System.Data.Entity;

public class Student
{
    public int Id { get; set; }
    public virtual Contact Contact { get; set; }
}

public class Contact
{
    public int Id { get; set; }
    public virtual Student Student { get; set; }
}

public class MyContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder builder)
    {
        builder.Entity<Contact>()
            .HasOptional(x => x.Student)
            .WithOptionalDependent(x => x.Contact)
            .WillCascadeOnDelete(true);
    }
}

public static class Program
{
    private static void Main()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());

        using (var context = new MyContext())
            context.Database.Initialize(force: true);
    }
}

Когда я запускаю этот код, я получаю точно правильную структуру таблицы, к которой я стремлюсь:

dbo.Contacts
    Id (PK)
    Student_Id (FK, NULL, CASCADE ON DELETE)

dbo.Students
    Id (PK)

Тем не менее, теперь я хотел бы добавитьStudent_Id свойство будет доступно вContact юридическое лицо. Так что я могу прочитатьStudent_Id без необходимости присоединяться к другой таблице через.Student.Id навигации.

Если я добавлю свойство кContact сущность, я в конечном итоге либо с двумя столбцамиStudent_Id а такжеStudent_Id1или я получаю сообщение об ошибкеEach property name in a type must be unique..

Столбец уже находится в базе данных, все, что мне нужно, это также иметь его в сущности, почему это так много проблем? Есть ли решение?

Ответы на вопрос(2)

Ваш ответ на вопрос