Ich verwende EF-Code zuerst, um mein DB-Schema zu generieren (EF 6, .NET 4.5.2). Ich habe zwei Klassen I eingefügt werden soll:EF-Code Erste Migration kompiliert nicht
public class MatrixFile
{
[Key]
public int Id { get; set; }
public string FilePath { get; set; }
public virtual List<MatrixData> Data { get; set; }
}
public class MatrixData
{
[Key]
public int Id { get; set; }
public int OdPairKey { get; set; }
public double Value { get; set; }
}
Hier mein DbContext
public class MyDataContext : DbContext
{
public virtual DbSet<MatrixFile> MatrixFiles { get; set; }
public virtual DbSet<MatrixData> MatrixData { get; set; }
}
Ich versuche, und mein DB-Schema in EF generieren, indem Sie die folgenden Befehle in der Paket-Manager-Konsole eingeben:
Enable-Migrations
Add-Migration GenerateDatabase
Dies ist die Migration, dass EF für mich generiert:
public partial class GenerateDatabase : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.MatrixDatas",
c => new
{
Id = c.Int(nullable: false, identity: true),
OdPairKey = c.Int(nullable: false),
Value = c.Double(nullable: false),
MatrixFile_Id = c.Int(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.MatrixFiles", t => t.MatrixFile_Id)
.Index(t => t.MatrixFile_Id, name: ""IX_MatrixData_MatrixFile_Id"");
CreateTable(
"dbo.MatrixFiles",
c => new
{
Id = c.Int(nullable: false, identity: true),
FilePath = c.String(),
})
.PrimaryKey(t => t.Id);
}
public override void Down()
{
DropForeignKey("dbo.MatrixDatas", "MatrixFile_Id", "dbo.MatrixFiles");
DropIndex("dbo.MatrixDatas", ""IX_MatrixData_MatrixFile_Id"");
DropTable("dbo.MatrixFiles");
DropTable("dbo.MatrixDatas");
}
}
Die Zeile .Index(t => t.MatrixFile_Id, name: ""IX_MatrixData_MatrixFile_Id"");
hat einen Kompilierungsfehler wegen der doppelten Anführungszeichen um IX_MatrixData_MatrixFile_Id
. Warum passiert dies? Wie kann ich den korrekten Migrationscode generieren, ohne die Migration manuell zu hacken?
Warum in der Erde gibt es ein dobule Zitat dort? entfernen Sie es einfach und es wird funktionieren – Stormhashe
Hallo @Stormhashe. Dein Kommentar umformuliert meine Frage grundlegend, aber mit viel schlechterer Rechtschreibung und Grammatik. Ich weiß, dass ich es einfach beheben kann, indem ich die überflüssigen Zitate entferne. Wissen Sie jedoch, warum EF den Code generiert? – Steztric
Verwenden Sie MSSQL? –