Я использую EF Code Сначала для создания моей схемы БД (EF 6, .NET 4.5.2). У меня есть два класса, я хочу, чтобы вставить:EF Code First Migration не скомпилирует
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; }
}
Вот мой DbContext
public class MyDataContext : DbContext
{
public virtual DbSet<MatrixFile> MatrixFiles { get; set; }
public virtual DbSet<MatrixData> MatrixData { get; set; }
}
Я стараюсь и создать свой DB схемы в EF, введя следующие команды в менеджере пакетов консоли:
Enable-Migrations
Add-Migration GenerateDatabase
Это миграция, что EF сгенерировал для меня:
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");
}
}
У строки .Index(t => t.MatrixFile_Id, name: ""IX_MatrixData_MatrixFile_Id"");
есть ошибка компиляции из-за двойных котировок вокруг IX_MatrixData_MatrixFile_Id
. Почему это происходит? Как я могу получить его для создания правильного кода перехода без ручного взлома миграции?
Почему в земле есть цитата из добула? просто удалите его, и он будет работать – Stormhashe
Привет @Stormhashe. Ваш комментарий в основном перефразирует мой вопрос, но с гораздо худшим написанием и грамматикой. Я знаю, что могу исправить это, удалив лишние кавычки. Однако вы знаете, почему EF генерирует код? – Steztric
Вы используете MSSQL? –