「多」側でのみナビゲーションを使用して1対多の関係を構成しようとしていますが、EFに正しい列名を生成させることができないようです。
関連するスキーマは次のとおりです。
QuoteItem
Id INT PRIMARY KEY
QuoteItemFiles
Id INT PRIMARY KEY
QuoteItemId INT NOT NULL
FileId INT NOT NULL
Files
FileID INT PRIMARY KEY (legacy naming convention)
そしてモデル:
public class QuoteItem
{
public int Id { get; set; }
public ICollection<QuoteItemFile> Attachments { get; set; }
}
public class QuoteItemFile
{
public int Id { get; set; }
public File File { get; set; }
public QuoteItem QuoteItem { get; set; }
}
public class File
{
public int FileID { get; set; }
}
私はこのような関係を構成しています:
public class QuoteItemMap()
{
HasMany(x => x.Attachments)
.WithRequired(x => x.QuoteItem)
.Map(x => x.MapKey("QuoteItemId"))
.WillCascadeOnDelete(true);
}
public QuoteItemFileMap()
{
HasRequired(x => x.QuoteItem)
.WithMany(x => x.Attachments)
.Map(x => x.MapKey("QuoteItemId"))
.WillCascadeOnDelete(true);
HasRequired(x => x.File)
.WithMany()
.Map(x => x.MapKey("FileId")) <-- This isn't working
.WillCascadeOnDelete(true);
}
QuoteItem.Attachments にアクセスしようとすると、" Invalid column name 'File_FileID'. "というメッセージが表示されます。
なぜ私のMapKey("FileId")
指示に従わないのですか?