2016-07-29 11 views
0

Ich verwende VS 2013, SQL Server 2008 R2. Ich habe gerade angefangen, ASP.NET MVC & EF zu lernen.Kann keine Fremdschlüssel in einer Tabelle mit EF6 erstellen

Ich habe zwei Klassen erstellt:

public class Album 
{ 
    public int Id { get; set; } 
    //ApplicationUser from Asp.net Identity Model 
    public ApplicationUser Artist; //Who Part 
    public DateTime DateTime { get; set; } //When Part 
    public string Venue { get; set; } //Where Part 
    public Genre Genre { get; set; } //Type Part 
} 

public class Genre 
{ 
    public byte Id { get; set; } 
    public string Name { get; set; } 
} 

Wenn ich add-migration CreateAlbum schaffen, soll ich zwei Fremdschlüssel bekommen, aber ich bin immer nur ein das heißt von Genre (Genre_Id).

Wie löst man das? Ich möchte ApplicationUser (Artist_Id), das heißt AspnetUser meiner Album Tabelle

+1

Ich denke, dass Sie verschiedene 'Tabellen' zu einem' Tischalbum' zuordnen wollen. Habe ich Recht? – mmushtaq

+0

ja Ich möchte zwei Tabellen zuordnen, dh AspnetUser, Genre zu AlbumTable –

+1

Dann verwenden Sie 'Table Splitting' in EF .. [this] (http://www.c-sharpcorner.com/UploadFile/ff2f08/table-splitting-in -entity-framework-6-code-first-approach /) und [dies] (https://msdn.microsoft.com/en-us/data/jj715645.aspx) wäre sehr hilfreich. – mmushtaq

Antwort

1

Sie haben vergessen verbinden get zu setzen und setzen. Fügen Sie get hinzu und legen Sie in Ihrer Klasse für den Anwendungsbenutzer fest.

public class Album 
{ 
    public int Id { get; set; } 
    //ApplicationUser from Asp.net Identity Model 
    public ApplicationUser Artist { get; set; }; //Who Part 
    public DateTime DateTime { get; set; } //When Part 
    public string Venue { get; set; } //Where Part 
    public Genre Genre { get; set; } //Type Part 
} 

public class Genre 
{ 
    public byte Id { get; set; } 
    public string Name { get; set; } 
} 

laufen nun die Migration. es wird klappen.

+0

Habe es diesmal richtig dank @Amit Kumar –

Verwandte Themen