Frage

Ich versuche LinqToEntities zu verwenden und habe gerade bemerkt, dass es keine Fremdschlüsselfelder im Datenmodell sind. Das scheint einige Probleme zu verursachen, wenn sie versuchen, einen Datensatz hinzufügen.

Reading um fand ich, dass, wenn ein Datensatz hinzufügen, können Sie etwas tun (Produkt einen Fremdschlüssel der Tabelle Kategorien hat).

Product myProduct = new Product();
myProduct.ProductName = ProductName;
myProduct.Categories = db.CategorySet.Where(c => c.CategoryID == CategoryID).First();
db.AddToProductSet(myProduct);
db.SaveChanges();

Ich bin sicher, dass es ein besserer Weg, dies zu tun. Aber meine Frage ist wirklich, ist dies, wie es funktioniert in LinqToEntities? Es scheint mir, dass dies viel komplizierter ist, als einfach einen Fremdschlüssel zu geben (das heißt myProduct.CategoryID = categoryid).

Wenn ich 5 Fremdschlüssel in einer Tabelle, ich bin zu haben, 5 Objekte abzurufen, um sie zu verbinden?

kann ich sehen, wie die oben tun könnte Sinn machen und den Nutzen hat, aber nicht sehen, die davon profitieren, wenn Sie nur versuchen, einen Datensatz in die Datenbank hinzufügen, die einen einzigen Fremdschlüssel in einer anderen Tabelle hat.

War es hilfreich?

Lösung

Für alle, die auf Stellen, Linq und fragte sich das gleiche, was ich tat ... ja, das ist, wie Linq To Entities neu ist. Sie benötigen ein tatsächliches Objekt anstatt nur geben einen Fremdschlüssel zu verweisen.

Mir scheint, dieses würde etwas Schlimmes Leistung tun, sondern von dem, was ich die Leistung bisher getan haben, ist gar nicht so schlecht. Eigentlich es ist schon besser als LINQ to SQL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top