实体框架不确定如何从一个表中检索Guid以在另一个表中使用

本文关键字:Guid 检索 另一个 一个 不确定 框架 实体 | 更新日期: 2023-09-27 18:06:48

我使用实体框架来创建我的数据库。我有一个名为"Departments"的表,它首先播种,然后添加两个用户。我需要使用部门表中的Id来创建用户表。

context.Department.AddOrUpdate(x => x.Id,
    new Department() { Id = Guid.NewGuid(), Name = "System", ImageNameLight = "", ImageNameDark = "" },
    new Department() { Id = Guid.NewGuid(), Name = "Estimating", ImageNameLight = "", ImageNameDark = "" },
    new Department() { Id = Guid.NewGuid(), Name = "Assembly", ImageNameLight = "dep-assy-off", ImageNameDark = "dep-assy-on" },
    new Department() { Id = Guid.NewGuid(), Name = "Project Engineering", ImageNameLight = "dep-pe-off", ImageNameDark = "dep-pe-on" },
);
var firstOrDefault = context.Department.FirstOrDefault(d => d.Name == "System");
if (firstOrDefault != null)
{
    var user = new ApplicationUser
    {
        UserName = "sysadmin",
        Email = "sysadmin@noemail.com",
        EmailConfirmed = true,
        FirstName = "System",
        LastName = "Admin",
        RoleId = adminRole.Id,
        DateCreated = DateTime.Now,
        DepartmentId = firstOrDefault.Id
    };

这是我目前所做的,但它不起作用,因为用户从未创建。

实体框架不确定如何从一个表中检索Guid以在另一个表中使用

你必须先保存到你的上下文,否则种子将永远不会工作,试试这个:

context.Department.AddOrUpdate(x => x.Id,
new Department() { Id = Guid.NewGuid(), Name = "System", ImageNameLight = "", ImageNameDark = "" },
new Department() { Id = Guid.NewGuid(), Name = "Estimating", ImageNameLight = "", ImageNameDark = "" },
new Department() { Id = Guid.NewGuid(), Name = "Assembly", ImageNameLight = "dep-assy-off", ImageNameDark = "dep-assy-on" },
new Department() { Id = Guid.NewGuid(), Name = "Project Engineering", ImageNameLight = "dep-pe-off", ImageNameDark = "dep-pe-on" },
);
context.SaveChanges();
//Do whatever with your new context