У меня есть следующие модели, ImprovementNotice
, которые могут содержать список ImprovementNoticeFiles
:
public class ImprovementNotice
{
public ImprovementNotice() {
this.ImprovementNoticeFiles = new List<ImprovementNoticeFile>();
}
[Key]
public int ImprovementNoticeId { get; set; }
public List<ImprovementNoticeFile> ImprovementNoticeFiles {get; set;}
}
public class ImprovementNoticeFile
{
[Key]
public int ImprovementNoticeFileId { get; set; }
[MaxLength(128)]
public string Filename { get; set; }
public int ImprovementNotice_ImprovementNoticeId { get; set; }
[JsonIgnore]
[ForeignKey("ImprovementNotice_ImprovementNoticeId")]
public virtual ImprovementNotice ImprovementNotice { get; set; }
}
Определение моего контекста:
public virtual DbSet<ImprovementNotice> ImprovementNotices { get; set; }
public virtual DbSet<ImprovementNoticeFile> ImprovementNoticeFiles { get; set; }
Я получаю сообщение об ошибке при обновлении команды SaveChanges
Недопустимое имя объекта "ImprovementNoticeFile".
SQL, который генерируется:
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (277ms) [Parameters=[@p0='filename.pdf' (Size = 128), @p1='1010'], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
INSERT INTO [ImprovementNoticeFile] ([Filename], [ImprovementNotice_ImprovementNoticeId])
VALUES (@p0, @p1);
SELECT [ImprovementNoticeFileId]
FROM [ImprovementNoticeFile]
WHERE @@ROWCOUNT = 1 AND [ImprovementNoticeFileId] = scope_identity();
Имя таблицы должно быть ImprovementNoticeFiles
с s
в конце, но сгенерированный SQL пытается вставить в ImprovementNoticeFile
.
Обновление
Это код первой миграции, который создал таблицу:
CreateTable(
"dbo.ImprovementNoticeFiles",
c => new
{
ImprovementNoticeFileId = c.Int(nullable: false, identity: true),
Filename = c.String(maxLength: 128),
ImprovementNotice_ImprovementNoticeId = c.Int(nullable: false),
})
.PrimaryKey(t => t.ImprovementNoticeFileId)
.ForeignKey("dbo.ImprovementNotices", t => t.ImprovementNotice_ImprovementNoticeId, cascadeDelete: true)
.Index(t => t.ImprovementNotice_ImprovementNoticeId);