如何为没有相同表名ID的列创建导航属性

时间:2018-10-08 11:50:28

标签: entity-framework api .net-core

我正在尝试在表usersorders之间建立一对多关系,但是问题是Users表没有一个外键可以链接到表Orders,而我要引用的列是orderNumber

该应用程序已经投入生产了一段时间,因此无法选择添加或更改列。

目标是使用已经存在的功能,并通过遵循导航属性方法来使此异步功能正常工作。

public async Task<List<Order>> GetCustomerOrders()
{
    using (var context = new Users())
    {

        var user = context.Users.FirstOrDefault(c => c.orderNumber == 7005);
        return user.Orders.ToList(); 

        /* Error
           An unhandled exception occurred while processing the request.

           ArgumentNullException: Value cannot be null.
           Parameter name: source
        */

    }
} 

模型类如下:

public partial class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int orderNumber { get; set; }

    /* Create relationship with orderNumber foreign key */
    [ForeignKey("orderNumber")]
    public virtual ICollection<Order> Orders { get; set; }

}

public partial class Order
{
    public int Id { get; set; }
    public int orderNumber { get; set; }

   /* Create relationship */
   public virtual User User { set; get; }

}

0 个答案:

没有答案