C#/EF 模型代码 - 关系必填字段
C#/EF model code - relationship required fields
因为我目前正在学习 Entity Framework 的工作原理,所以我遇到了以下问题:
关于创建基本的 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; }
}
book-post 关系有引用和 Id 字段。这是必需的吗?
我总是手动连接数据库,只有参考字段
public Blog Blog { get; set; }
这样我也可以访问博客 ID,而不必同时更新这两个 ID。
似乎 EF 迁移不是这样工作的。
有什么原因吗?同时保留参考和 Id 字段是最佳做法吗?
不需要包含 Id,但是如果您想通过使用 virtual 关键字启用延迟加载,并且在某些情况下您只需要对象的 Id,单独包含它可能会有用。
例如:
public virtual Blog Blog { get; set; }
public int BlogId { get; set; }
有关 lazy/eager 加载的更多信息:
https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx
因为我目前正在学习 Entity Framework 的工作原理,所以我遇到了以下问题:
关于创建基本的 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; }
}
book-post 关系有引用和 Id 字段。这是必需的吗?
我总是手动连接数据库,只有参考字段
public Blog Blog { get; set; }
这样我也可以访问博客 ID,而不必同时更新这两个 ID。 似乎 EF 迁移不是这样工作的。
有什么原因吗?同时保留参考和 Id 字段是最佳做法吗?
不需要包含 Id,但是如果您想通过使用 virtual 关键字启用延迟加载,并且在某些情况下您只需要对象的 Id,单独包含它可能会有用。
例如:
public virtual Blog Blog { get; set; }
public int BlogId { get; set; }
有关 lazy/eager 加载的更多信息: https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx