C#/ EF模型代码 - 关系必需字段

时间:2017-05-09 08:42:27

标签: c# entity-framework ef-migrations

因为我目前正在学习实体框架是如何工作的,所以我得到了以下问题:

在创建基本的1:n关系(代码优先)时,我确实读过我应该这样做:

public class Post
{
    public int PostId { get; set; }
    [MaxLength(200)]
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}

书籍关系有参考和Id字段。这需要吗?

我总是手动完成数据库连接,只有参考字段

public Blog Blog { get; set; }

这样我也可以访问博客ID,而且我不必保持最新版本。 似乎EF迁移不会以这种方式工作。

有什么理由吗?保持both,reference和Id字段是最佳做法吗?

1 个答案:

答案 0 :(得分:1)

不需要包含Id,但是如果要使用virtual关键字启用延迟加载,并且有些实例只需要对象的Id,则单独包含它可能会很有用。

一个例子是:

public virtual Blog Blog { get; set; }
public int BlogId { get; set; }

有关延迟/急切加载的更多信息: https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx