【发布时间】:2020-11-08 03:35:12
【问题描述】:
请问我对 Microsoft 网站上的此链接有疑问,该网站提供了如何播种数据的示例:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro?view=aspnetcore-3.1
在播种数据时,没有为成员分配任何 ID,并且在成员模型中,使用了 [DatabaseGenerated(DatabaseGeneratedOption.None)] 注释,这意味着我们将自己输入 ID 的数据值。那么,应用程序如何知道哪个成员与注册实体中的哪个 memberid(外键)匹配。
【问题讨论】:
-
我想我找到了答案。 [DatabaseGenerated(DatabaseGeneratedOption.None)] 注释未在学生实体中指示。因此,它将自动生成数字本身。是否意味着自动生成从图1开始?
-
构造函数中的类对象将属性设置为默认值。如果你需要一个不同的值,你需要一个构造函数来设置值。
-
@jdweng 教程中的类上下文是 SchoolContext 并且没有将属性设置为默认值的地方,或者这是否意味着 1 开箱即用作为默认值的起始值。假设我想要一个不同的值,例如,我希望数字从 100 开始,请问我该如何实现。
-
请阅读官方 EF Core 文档的Data Seeding 部分。您必须提供明确的主键和外键值,无论它们是否通常是自动生成的。
-
类属性将有一个默认值,例如 int 设置为零,而 string 设置为空字符串。 Ivan 的链接将属性设置为默认构造函数值以外的值。
标签: c# entity-framework entity-framework-core seeding