我无法使用EF core 2.2

时间:2019-11-30 09:02:30

标签: c# asp.net-core entity-framework-core asp.net-identity

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

  • ASP.Net core 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);
}

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

致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

致谢