【发布时间】:2016-05-29 01:40:30
【问题描述】:
我使用 EF6 开发 Web 应用程序。
假设我有以下模型:
public interface IBaseEntityObject
{
public int Id {get; set;}
}
public abstract class BaseEntityObject : IBaseEntityObject
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id {get; set;}
}
public class Folder : BaseEntityObject
{
public string Name {get; set;}
public List<Letter> Letters {get; set;}
}
public abstract class Letter : BaseEntityObject
{
public string Title {get; set;}
public string Content {get; set;}
public virtual Folder Folder {get; set;}
public int FolderId {get; set;}
public DateTime CreationDate {get; set;}
}
public class OutgoingLetter : Letter
{
// .. OutgoingLetter properties
}
public class ReceviedLetter : Letter
{
// .. ReceviedLetter properties
}
public class MyDbContext : DbContext
{
public DbSet<Folder> Folders {get; set;}
public DbSet<Letter> Letters {get; set;}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Folder <-> Letters
modelBuilder.Entity<Letter>()
.HasRequired(t => t.Folder)
.WithMany(f => f.Letters)
.HasForeignKey(t => t.FolderId)
.WillCascadeOnDelete(true);
}
}
如果我从 Letter 模型中删除虚拟文件夹导航属性,是否有任何损失?我不希望我的客户在索要信函时收到文件夹……这似乎是错误的。
我只是想知道是否通过删除此属性,我会失去一些 EF 性能。
谢谢。
【问题讨论】:
标签: c# entity-framework database-design ef-code-first