Я не вижу никаких проблем с логикой с фрагментом кода выше.
Попробуйте реструктурировать код, инкапсуляция использования контекста может раскрыть, почему сохранение не происходит.
public void SaveOrder(IEnumerable<string> rows)
{
// Create a new order and add items
var neworder = new Order_Master();
foreach (var row in rows)
{
var valueslist = row.ToList();
var oi = new Order_Item();
oi.Item_Description = valueslist[0].ToString();
// Set more properties...
// Add the item to the order
neworder.Order_Item.Add(oi);
}
// Instance a context, add the order and save
try
{
using (var db = new OrderContext())
{
db.Order_Master.Add(neworder);
db.SaveChanges();
}
}
catch (Exception e)
{
throw new Exception($"Failed to save to database: {e.Message}");
}
}
Модель сущности должна выглядеть примерно так:
public class OrderContext : DbContext
{
public DbSet<Order_Master> Order_Master { get; set; }
public DbSet<Order_Item> Order_Items { get; set; }
// More entities...
}
public class Order_Item
{
public int Id { get; set; }
public string Item_Description { get; set; }
// More properties...
}
public class Order_Master
{
public Order_Master()
{
Order_Item = new List<Order_Item>();
}
public ICollection<Order_Item> Order_Item { get; set; }
public int Id { get; set; }
public string Order_Description { get; set; }
// More properties...
}