Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

13.03.2011, 13:13

[C#] Entity Framework Fehler bei 'SaveChanges'

Hallo!

Bei dem Versuch ein Objekt mit der Beziehung n : 1 in die Datenbank zu speichern, bekomme ich immer wieder diese Fehlermeldung:

C#-Quelltext

1
EntitySet 'OrderItems' kann nicht aktualisiert werden, denn es hat eine DefiningQuery, und im <ModificationFunctionMapping>-Element ist kein <InsertFunction>-Element zur Unterstützung des aktuellen Vorgangs vorhanden.


Leider verstehe ich überhaupt nicht, was damit gemeint ist.

So gehe ich vor:

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* Codeausschnitt */

            Order order = new Order 
{ 
 Id = Guid.NewGuid() 
};
 
            // Objekt wird registriert
            App.entities.Orders.AddObject( order );

// OrderItem (n :1 Beziehung, also eine Order hat mehrere OrderItems (soll das Produkt darstellen)) wird gebildet:
OrderItem item = new OrderItem
                {
                    AllPrice = article.Price,
                    SinglePrice = article.Price,
                    CategoryName = article.Category.ToString(),
                    Name = article.Name,
                    Order = order,
                    ItemCount = 1,
                    OrderId = order.Id                   
                };

// Order-Time wird festgelegt
                order.Date = DateTime.Now;

// Jetzt wird das orderItem registriert
                App.entities.AddToOrderItems( item );

// nun wird aktualisiert
                App.entities.SaveChanges(); // --> Hier wird die Ausnahme ausgelöst.


Greetings,
GreenPepper

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

2

16.03.2011, 13:31

Wieso generierst du die ID von Order denn selbst? Das sollte das EF für dich übernehmen können wenn du das DBModel dafür entsprechend konfiguriert hast.

OrderId = order.Id

Halte ich auch für nicht korrekt, EF sollte sowas auch selbstständig können indem du nur sagst:

Order = order

Mit der Fehlermeldung selbst kann ich leider nichts anfangen.

3

19.03.2011, 10:51

Ach dieser alte Fehler....;) Ne, das lag daran, dass ich für die eine Tabelle keinen PrimaryKey hatte, und das blockierte anscheinend die Insert-Funktion.
@ ID: Ich werde das nochmal überarbeiten... Das Problem hier war, dass ein vorheriger Versuch mit AutoIncrement scheiterte. Ich probiers später nochmal. Aber das mit der ID sollte kein Problem sein, da diese vom Type Guid ist.

Werbeanzeige