Добавление сложных объектов в .NET CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Добавление сложных объектов в .NET Core

Сообщение Anonymous »

Это мои сущности:
public class Order
{
[Key]
public long OrderId { get; set; }
public string CustomerId { get; set; }

[ForeignKey("CustomerID")]
[Required]
public Customer Customer { get; set; }
public long EmployeeId { get; set; }

[ForeignKey("EmployeeID")]
public Employee Employee { get; set; }
...
public ICollection OrderDetails { get; set; }
}

public class OrderDetail
{
// public long Id { get; set; }

[Key, Column(Order = 0)]
public long OrderId { get; set; }

[ForeignKey("OrderID")]
public Order Order { get; set; }
public long ProductId { get; set; }
public Product Product { get; set; }
public double UnitPrice { get; set; }
public long Quantity { get; set; }
public double Discount { get; set; }
}

public class Category
{
[Key]
public long CategoryId { get; set; }

public string CategoryName { get; set; }
}

Мне нужно реализовать методы AddOrderAsync и UpdateOrderAsync. Я пробовал много вариантов, но получал разные типы ошибок, например

System.InvalidOperationException: экземпляр типа сущности «Категория» не может быть отслежен, потому что другой экземпляр с тем же значением ключа для {'CategoryId'} уже отслеживается.

public async Task AddOrderAsync(RepositoryOrder order)
{
var entityOrder = order.ToEntityOrder();
this.context.Orders.Add(entityOrder);

// Add the order details
foreach (var detail in order.OrderDetails)
{
this.context.OrderDetails.Add(detail.ToEntityOrderDetail());
}

// Save changes
await this.context.SaveChangesAsync();

// Commit transaction
await transaction.CommitAsync();
return entityOrder.OrderId;
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... n-net-core
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»