【发布时间】:2013-12-31 03:43:33
【问题描述】:
在做 CodeFirst 方法时,有两种方法来声明键和相关表。
public class Person
{
[Key]
public int Id { get; set; }
}
或
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Person>().HasKey(e => e.Id);
}
这是一个偏好问题还是使用一个而不是另一个有意义?新项目应该使用什么?
更新:我将拥有大约 8 个实体,每个实体具有大约 1-4 个关系,我希望允许级联删除。
【问题讨论】:
-
两者各有优势。这些属性的优势在于与 EF 无关的代码也可以使用反射来利用它们。模型构建器的优势在于可以表达更多方面,如果您需要任何没有可用属性的东西,您仍然可以将各种配置位放在一起。哪个最好,没有更多细节,因此主要是意见和品味的问题。您的问题中是否有任何部分无法获得基于意见的答案,您能否将问题集中在这一点上?
标签: c# .net entity-framework