Как создать свойство навигации для столбцов, которые не имеют одинаковый идентификатор таблицы - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь установить отношение один-ко-многим между таблицей users и orders, но проблема в том, что таблица 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; }

}
...