Я использую шаблон кода для слоя базы данных.
У меня есть два класса POCO:
public class Order
{
[Key]
public int OrderId { get; set; }
public virtual ICollection<Item> Items { get; set; }
// other fields
}
и
public class Item
{
[Key]
public int ItemId { get; set; }
public virtual ICollection<Order> Orders { get; set; }
// other fields
}
Тогда у меня есть класс контекста данных:
public class DataContext : DbContext
{
public DbSet<Item> Items { get; set; }
public DbSet<Order> Orders { get; set; }
}
И у меня есть класс "хранилище":
public class OrderRepository
{
private DataContext dataContext = new DataContext();
public void Save(Order entity)
{
entity.OrderDate = System.DateTime.Now;
dataContext.Orders.Add(entity);
dataContext.SaveChanges();
}
}
Когда я вызываю этот метод OrderRepository.Save, я получаю ошибку: На объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker.
В базе данных у меня есть таблица Items, Orders и Items_Orders ... Я много google-d для этой ошибки и для EF многие-ко-многим, но я не нашел ничего полезного, что помогло бы мне, потому что Я не смог найти образец для принципа Code-First.
Спасибо!