2016-06-24 16 views
1

Ich habe 2 Einheiten Course und Group, die viele-viele sind verwandt. Ich verwende Code-Erstmigrationen. Wenn ich update-database -v es wirft eine Ausnahme Ich bin mir bewusst, dass Viele-Viele-Beziehung erstellt eine andere Tabelle GroupCourses.Many- Many-Beziehung im EF-Code Zuerst mit verschiedenen PK-Typen

StackTrace : ALTER TABLE [dbo].[GroupCourses] ALTER COLUMN [Course_CourseId] [int] NOT NULL

Exception : Operand type clash: uniqueidentifier is incompatible with int

public class Course 
    { 
     [Key] 
     public int CourseId { get; set; } 

     public virtual ICollection<Group> Groups { get; set; } 
    } 

    public class Group 
    { 
     [Key] 
     public Guid groupId { get; set; } 

     public virtual ICollection<Course> Courses{ get; set; } 
    } 

Ich denke, es zu verschiedenen PK-Typen in beiden Entitäten zurückzuführen ist. Hab ich recht? Wenn ja, gibt es eine Lösung, um dies zu überwinden.

Vielen Dank im Voraus.

Antwort

0

Sie cannot update a primary key with Entity Framework.

Wenn Sie versucht, zu aktualisieren, nehme ich PK CourseId von einem Guid zu einem int, das ist, was das Problem verursacht (nicht die PKs sind verschiedene Typen in der assoziativen Tabelle, das ist in Ordnung).

Entweder die Tabelle löschen oder den Typ manuell ändern.

+0

Ich bekomme eine Ausnahme, wenn ich versuche, 'Datenbank' aus den' Modellen' zu generieren. Wenn ich den Befehl 'update-database -v' auf Powershell zum Erstellen der Datenbank ausführen. Dann bekomme ich eine Ausnahme. – Venky

+0

Ich habe alle Tische fallen gelassen. Neue 'migration' mit den neuesten Modellen erstellt und den Befehl' update-database -v' ausgeführt. Immer noch der gleiche Fehler. – Venky