Note that there are some explanatory texts on larger screens.

plurals
  1. POentity framework saves first item in the loop but none other
    primarykey
    data
    text
    <p>In my controller I'm looping through items and saving them to my db. The problem is that it saves the first item, but none of the others. I put a breakpoint on the "SaveItem()" line in the loop and it hits it every time, but what seems odd to me is that it only goes through to the method for the 1st item. </p> <p>What am I doing wrong?</p> <pre><code>public void SubmitItem(Cart cart, ShippingDetails shippingDetails, ProcessedItems processedItem, string orderID) { var cartItems = cart.Lines; //CartIndexViewModel cartIndex = new CartIndexViewModel(); //var customID = cartIndex.OrderID; foreach(var item in cartItems) { processedItem.OrderID = orderID; processedItem.ProductID = item.Product.ProductID; processedItem.Name = item.Product.Name; processedItem.Description = item.Product.Description; processedItem.Price = item.Product.Price; processedItem.Category = item.Product.Category; processedItem.ImageName = item.Product.ImageName; processedItem.Image2Name = item.Product.Image2Name; processedItem.Image3Name = item.Product.Image3Name; processedItem.BuyerName = shippingDetails.Name; processedItem.Line1 = shippingDetails.Line1; processedItem.Line2 = shippingDetails.Line2; processedItem.Line3 = shippingDetails.Line3; processedItem.City = shippingDetails.City; processedItem.State = shippingDetails.State; processedItem.Zip = shippingDetails.Zip; processedItem.Country = shippingDetails.Country; processedItem.Status = "Submitted"; processedItems.SaveItem(processedItem); } } public class EFProcessedItemsRepository : IProcessedItems { private EFDbContext context = new EFDbContext(); public IQueryable&lt;ProcessedItems&gt; ProcessedItem { get { return context.ProcessedItems; } } public void SaveItem(ProcessedItems processedItem) { if(processedItem.ProcessedID == 0) { try { context.ProcessedItems.Add(processedItem); context.SaveChanges(); } catch (Exception) { throw; } } else { context.Entry(processedItem).State = EntityState.Modified; } } public void DeleteItem(ProcessedItems processedItem) { context.ProcessedItems.Remove(processedItem); context.SaveChanges(); } } </code></pre> <p>here is the class for the processedItem:</p> <pre><code>public class ProcessedItems { [Key] public int ProcessedID { get; set; } public string OrderID { get; set; } public int ProductID { get; set; } public string Name { get; set; } public string Description { get; set; } public decimal Price { get; set; } public string Category { get; set; } public string ImageName { get; set; } public string Image2Name { get; set; } public string Image3Name { get; set; } public string Status { get; set; } //shipping public string BuyerName { get; set; } public string Line1 { get; set; } public string Line2 { get; set; } public string Line3 { get; set; } public string City { get; set; } public string State { get; set; } public string Zip { get; set; } public string Country { get; set; } } </code></pre> <p>Interface:</p> <pre><code>public interface IProcessedItems { IQueryable&lt;ProcessedItems&gt; ProcessedItem { get; } void SaveItem(ProcessedItems processedItem); void DeleteItem(ProcessedItems processedItem); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload