моя модель супермаркета содержит класс StockItem и класс Alert, который содержит поле StockItem:
public class StockItem
{
public int ID { get; set; }
public string Name { get; set; }
public int CurrentQuantity { get; set; }
public int MinQuantity { get; set; }
}
public class Alert
{
public int ID { get; set; }
public int Message{ get; set; }
public virtual StockItem StockItem { get; set; }
}
У меня есть функция, которая извлекает все StockItems с одним DbContext:
using (var db = new MyDbContext())
{
return db.StockItems.ToList();
}
И еще одна функция, которая обрабатывает эти элементы и добавляет новые оповещения в другой DbContext:
foreach (var item in items)
{
if (item.CurrentQuantity < item.MinQuantity)
{
using (var db = new MyDbContext())
{
db.Alerts.Add(new Alert(){StockItem = item, Message = "Low Quantity"});
db.SaveChanges();
}
}
}
Проблема заключается в следующем: при сохранении предупреждения в базу данных добавляется новый товарный элемент (с другим идентификатором), хотя он уже существует! какие решения?