使用實體框架6,我想知道如果我需要一個映射文件。我有這樣定義的模型:我需要映射文件嗎?
[Table("UploadedFile")]
public partial class UploadedFile
{
[Key, ForeignKey("Resource"), DatabaseGenerated(DatabaseGeneratedOption.None)]
public System.Guid FileId { get; set; }
public virtual Resource Resource { get; set; }
//...
public System.DateTime Modified { get; set; }
public bool IsActive { get; set; }
public byte[] RecordVersion { get; set; }
public UploadedFile()
{
Resource = new Resource();
}
}
我的映射文件是這樣的:
public class UploadedFileMapping : EntityTypeConfiguration<UploadedFile>
{
public UploadedFileMapping()
{
//Primary key
HasKey(t => t.FileId);
//Constraints
Property(t => t.RecordVersion).IsRowVersion();
}
}
我可以只依靠模型中的屬性?使用映射文件有什麼優點/缺點?
我相信模型中的[Key]
屬性否定了HasKey的需要,這是正確的嗎?
但是,它更多的是一種痛苦。我不會完全同意域模型隔離......它取決於您在應用程序中使用DTO/ViewModels/Models的方式。此外,您應該只真正從數據庫中投射出您真正想要的東西,因此應該永遠不會有整個數據庫以代碼模型化的時間。 (這僅用於創建表和遷移) –