0

实体框架中的最佳实践是什么:

1.在CLR类型上定义外键

public class Book
{
    public int AuthorId{get;set;}
    public Author Author{get;set;}
}

2.不定义外键(只定义导航属性)

public class Book
{
    public Author Author{get;set;}
}
4

1 回答 1

1

我个人的偏好是在定义关系时使用定义 FK 并设置键值 ( AuthorId)。

Julie Lerman在这里这里有 2 篇很棒的文章,解释了采用这种方法的一些好处。

这是摘要:

保存悲伤并使用该外键

无需设置导航属性并且不必担心 [相关实体] 的状态,只需设置 [Id] 属性,因为您确实可以在 [相关实体] 实例中访问该值。这是我发现自己经常向开发人员建议的事情。即使在 Twitter 上,我也看到了这样一个问题:“为什么 EF 插入已经存在的数据?” 我经常正确地回答:“你有没有机会在新实体而不是 FK 上设置导航属性?J”</p>

于 2013-08-08T13:59:57.787 回答