Announcement

Collapse
No announcement yet.

Entity Framework Parallelität

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Entity Framework Parallelität

    Hallo,

    ich spiele gerade mit LinqToENTITIES herum, und musste feststellen, dass es gar nicth so einfach ist genaue Daten eines Parallelitätkonflikts auszulesen wie bei LinqToSQL.
    Kann mir jemand zeigen wie man die genaue(n) Spaltennamen, Tabellennamen usw. von den vom Konflikt betroffenen Daten auslesen kann?
    Oder ist das nicht mehr so im Detail vorgesehen wie bei LinqToSQL?

    So gings ja in LinqToSQL:

    Code:
    try
    {
        db.SubmitChanges(ConflictMode.ContinueOnConflict);
    }
    
    catch (ChangeConflictException e)
    {
        Console.WriteLine("Optimistic concurrency error.");
        Console.WriteLine(e.Message);
        foreach (ObjectChangeConflict occ in db.ChangeConflicts)
        {
            MetaTable metatable = db.Mapping.GetTable(occ.Object.GetType());
            Customer entityInConflict = (Customer)occ.Object;
            Console.WriteLine("Table name: {0}", metatable.TableName);
            Console.Write("Customer ID: ");
            Console.WriteLine(entityInConflict.CustomerID);
            foreach (MemberChangeConflict mcc in occ.MemberConflicts)
            {
                object currVal = mcc.CurrentValue;
                object origVal = mcc.OriginalValue;
                object databaseVal = mcc.DatabaseValue;
                MemberInfo mi = mcc.Member;
                Console.WriteLine("Member: {0}", mi.Name);
                Console.WriteLine("current value: {0}", currVal);
                Console.WriteLine("original value: {0}", origVal);
                Console.WriteLine("database value: {0}", databaseVal);
                Console.ReadLine();
            }
        }
    }
    Nur Leider gibt es MemberChangeConfict usw. nicht bei ADO.NET EntityFramework...


    Danke!
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!

  • #2
    Hallo,

    über das Rumspielen bin ich auch noch nicht raus, aber ich habe mal Resolve concurrency conflicts als Ansatz dafür hergenommen. Weiter bin ich auch nicht...

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Danke! Hat mich etwas weitergebracht..
      Aber so wies aussieht gibt es keine Funktion die in der Exception den aktuellen "Datenbankwert" ausliest. Für micht wäre eigentlich dieser sehr interessant! Weil welcher wert vorher war interessiert eigentlich etwas weniger. Welcher der neue ist, weiß man ja eigentlich. Aber den Wert den der andere User eingefügt hat, wäre ja interessant!
      Vielleicht gibt ja doch nen weg...

      MfG
      Die Taschenlampe!

      Die perfekte Taschenlampe für Ihr Windows Phone!

      - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
      - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


      Hier gehts zu APP!

      Comment


      • #4
        Hallo nochmal,

        kann mir jemand evtl. nen Tipp geben, wie ich den aktuellen Datenbankwert in der Exception auslesen kann? Die Abfrage ist kein Problem. Aber ich möchte nur die von der Exception betroffenen Tabellen, bzw. Spalten abfragen und das möglichst automatisch.

        Danke!
        Die Taschenlampe!

        Die perfekte Taschenlampe für Ihr Windows Phone!

        - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
        - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


        Hier gehts zu APP!

        Comment

        Working...
        X