Entity Framework сохраняет только одну запись из списка - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь вставить новую запись из TPOSTransaction и TPOSTransactionDetail

Код ниже взят из события в моем классе:

_posTransaction = new TPostransaction();
_posTransactionDetail = new TPostransactionDetail();
_posTransactionDetails = new List<TPostransactionDetail>();

_posTransaction.UserId = _user.Id;
_posTransaction.Total = Convert.ToDecimal(txtOrderTotal.Text);
_posTransaction.ChangeDue = Convert.ToDecimal(txtChangeDue.Text);
_posTransaction.AmountPaid = Convert.ToDecimal(txtAmountPaid.Text);
_posTransaction.TransactionDate = DateTime.Now;

foreach (ListViewItem orders in lvOrders.Items)
{
   _posTransactionDetail.ItemId = Convert.ToInt32(orders.SubItems[1].Text);
   _posTransactionDetail.Quantity = Convert.ToInt32(orders.SubItems[3].Text);
   _posTransactionDetail.Subtotal = Convert.ToDecimal(orders.SubItems[4].Text) * Convert.ToDecimal(orders.SubItems[3].Text);
   _posTransactionDetails.Add(_posTransactionDetail);
}

    _posTransaction.TPostransactionDetail = _posTransactionDetails;
    _pos.Add(_posTransaction); //method from a class

Это где ясохранить запись:

Когда я пытаюсь отладить, POSTransaction.TposTransactionDetail имеет 2 записи, так как это то, что я добавил из списка

//this is my primary concern
var posTransaction = dbContext.TPostransaction.Add(POSTransaction);
dbContext.TPostransactionDetail.AddRange(POSTransaction.TposTransactionDetail);
dbContext.SaveChanges();

Это сохраняет запись TPosTransaction и TPosTransactionDetail, носохраняемая деталь - только одна, вместо 2. Я попытался удалить часть AddRange, она все еще сохраняет одну запись в моем TposTransactionDetail.

1 Ответ

0 голосов
/ 31 марта 2019

для вас, потому что вам нужно создать новый экземпляр TPostransactionDetail, вы просто повторно используете экземпляр в верхней части вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...