【问题标题】:C#/EF model code - relationship required fields [duplicate]C#/EF 模型代码 - 关系必填字段 [重复]
【发布时间】:2017-05-09 08:42:26
【问题描述】:

由于我目前正在学习实体框架的工作原理,我得到了以下问题:

在创建基本的 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 迁移不能以这种方式工作。

有什么理由吗?保留参考和 Id 字段是最佳做法吗?

【问题讨论】:

  • 应该对迁移没有影响,除非您排除 FK EF 会在数据库 (Blog_ID) 中为您创建一个。

标签: c# entity-framework entity-framework-migrations


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 2011-07-18
    • 2017-10-14
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多