Fremdschlüssel in HasOptional () zuordnen. WithOptionalDependent () - Beziehung in Entity Framework 6

Ich habe das folgende Datenmodell in 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);
    }
}

Wenn ich diesen Code starte, erhalte ich genau die richtige Tabellenstruktur, die ich anstrebe:

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

dbo.Students
    Id (PK)

Jetzt möchte ich jedoch das @ hinzufügStudent_Id -Eigenschaft, die im @ verfügbar sein soContact Entität. So kann ich das @ lesStudent_Id ohne die andere Tabelle durch @ verbinden zu müss.Student.Id navigation.

Wenn ich die Eigenschaft zum @ hinzufüContact Entität, ich ende entweder mit zwei SpaltenStudent_Id undStudent_Id1, oder ich erhalte eine Fehlermeldung mit dem TitelEach property name in a type must be unique..

Die Spalte befindet sich bereits in der Datenbank. Ich muss sie nur in der Entität haben. Warum gibt es so viele Probleme? Gibt es eine Lösung?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage