我无法使用 EF 核心 2.2 加载标识用户



我正在构建一个系统,其中我有一个Order实体,其中每个实体都有一个Sender。我正在使用

  • ASP.Net 核心2.2(使用身份管理成员资格(;
  • EF 核心 2.2。

我面临的问题是我无法使用.Include(x => x.Sender)添加用户实体。它始终作为null返回。

这是Order代码:

public class Order
{
public int Id { get; set; }
public OrderStatusType CurrentOrderStatus { get; set; }
public string PublicOrderId { get; set; }
public Address PickupAddress { get; set; }
public Address DropAddress { get; set; }
public User Sender { get; set; }
public User Receiver { get; set; }
public User Creator { get; set; }
public double ExpectedDistance { get; set; }
public int ExpectedDuration { get; set; }
}

这是User代码:

public class User : IdentityUser
{
public string FirastName { get; set; }
public string LastName { get; set; }
public string LastNumber { get; set; }
public string Gander { get; set; }
public Language PrefairdLanguage { get; set; }
public string Themapnail { get; set; }
public Address DefaultAddress { get; set; }
public Store Store { get; set; }
public int Imei { get; set; }
} 

这是DbContext代码:

public class MandoobContext : IdentityDbContext<User>
{
// private readonly string connectionString;
public MandoobContext(DbContextOptions<MandoobContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}

public DbSet<Order> Orders { get; set; }
public DbSet<Address> Addresses { get; set; }    
}

这是我尝试从数据库检索数据的控制器:

[HttpGet]
[Route("Order/{id:int}")]
public async Task<IActionResult> Order(int id)
{
Order order = _context.Orders
.Include(x => x.DropAddress)
.Include(x => x.PickupAddress)
.Include(x => x.Sender)
.FirstOrDefault(x => x.Id == id);
return View(order);
}

如果有人有想法,请提前感谢您的帮助。

问候。

您确定在给定Order的数据库上设置了Sender吗?我已经使用 VS .net 模板创建了一个工作应用程序,并将您的模型添加到其中,它就可以工作了。

你可以在GitHub上找到它:https://github.com/tvdias/SO59114688。

我可以通过更新到.net Core 3.0和Ef core3.0来解决问题。 我不知道到底出了什么问题,但更新修复了它。

问候

相关内容

  • 没有找到相关文章

最新更新