C# 关注.NET Core 3.1中的种子数据
关于Microsoft网站上的此链接,我有一个问题,其中给出了如何为数据种子的示例:C# 关注.NET Core 3.1中的种子数据,c#,entity-framework,entity-framework-core,seeding,C#,Entity Framework,Entity Framework Core,Seeding,关于Microsoft网站上的此链接,我有一个问题,其中给出了如何为数据种子的示例: 当种子设定数据时,成员没有分配任何ID,并且在成员模型中使用了[DatabaseGenerated(DatabaseGeneratedOption.None)]注释,这意味着我们将自己输入ID的数据值。因此,应用程序将如何知道哪个成员与注册实体中的哪个memberid(外键)匹配。如果您询问如何在EF模型中显示关系,请查看此示例: [Table("AppUserInRole")]
当种子设定数据时,成员没有分配任何ID,并且在成员模型中使用了[DatabaseGenerated(DatabaseGeneratedOption.None)]注释,这意味着我们将自己输入ID的数据值。因此,应用程序将如何知道哪个成员与注册实体中的哪个memberid(外键)匹配。如果您询问如何在EF模型中显示关系,请查看此示例:
[Table("AppUserInRole")]
public partial class AppUserInRole
{
[Key]
public int Id { get; set; }
public int UserId { get; set; }
public short RoleId { get; set; }
[ForeignKey(nameof(RoleId))]
[InverseProperty(nameof(AppRole.AppUserInRoles))]
public virtual AppRole Role { get; set; }
[ForeignKey(nameof(UserId))]
[InverseProperty(nameof(AppUserInfo.AppUserInRoles))]
public virtual AppUserInfo User { get; set; }
}
在这个示例中,我们有3个表和3个模型。
AppUserInRole与AppUserInfo和AppRole有关系。我想我找到了答案。学生实体中未指示[DatabaseGenerated(DatabaseGeneratedOption.None)]注释。因此,它将自动生成数字本身。这是否意味着自动生成从图1开始?构造函数中的类对象将属性设置为默认值。如果需要不同的值,则需要一个构造函数来设置该值。@jdweng教程中的类上下文是SchoolContext,没有任何地方将属性设置为默认值,或者它是否意味着1作为默认值的起始值。假设我想要一个不同的值,例如,我希望数字从100开始,我如何实现这一点,请阅读官方EF核心文档的部分。您必须提供显式主键值和外键值,无论它们是否自动生成。类属性将具有默认值,如int设置为零,string设置为空字符串。Ivan的链接将属性设置为默认构造函数值以外的值。