Entity Framework 4-Code-Erstmal vielen vielen einfügen
Ich bin mit der code-first-Muster für den Datenbank-layer.
Habe ich zwei POCO-Klassen:
public class Order
{
[Key]
public int OrderId { get; set; }
public virtual ICollection<Item> Items { get; set; }
//other fields
}
und
public class Item
{
[Key]
public int ItemId { get; set; }
public virtual ICollection<Order> Orders { get; set; }
//other fields
}
Dann habe ich die Daten Kontext-Klasse:
public class DataContext : DbContext
{
public DbSet<Item> Items { get; set; }
public DbSet<Order> Orders { get; set; }
}
Und ich habe ein "repository" - Klasse:
public class OrderRepository
{
private DataContext dataContext = new DataContext();
public void Save(Order entity)
{
entity.OrderDate = System.DateTime.Now;
dataContext.Orders.Add(entity);
dataContext.SaveChanges();
}
}
Wenn ich sage " das OrderRepository.Methode speichern bekomme ich eine Fehlermeldung: Ein entity-Objekt verwiesen werden kann, indem mehrere Instanzen von IEntityChangeTracker.
In der Datenbank habe ich eine Tabelle Posten, Aufträge und Items_Orders...ich google-d viele für diesen Fehler und für EF-viele-zu-viele-zu retten, aber ich habe nicht finden, alles, was nützlich, was mir helfen würde, weil ich nicht finden konnte, ein Beispiel für Code-First-Prinzip.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie wahrscheinlich andere Personen (aus anderen repositories?) die kamen aus anderen
DataContext
s in Bezug auf IhreOrder
Einheit. Dazu führen würde, dass die Fehler, die Sie sehen.Alle repositories gemeinsam die gleichen
DataContext
während eine Einheit der Arbeit. Sie in der Regel tun dies mit Konstruktor-injection, wie diese:DataContext
für alle Repositorys, in einer UOW.