Announcement

Collapse
No announcement yet.

Select und Select New

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

  • Select und Select New

    Hallo,

    was ist in Entity Framework der genaue Unterschied zwischen:

    Code:
    var test = from i in testdata.test select new {i};
    und

    Code:
    var test = from i in testdata.test select i
    ich sehe nur dass bei "select new" die aktuellen Daten IN der Datenbank geholt werden und bei select, die die im Context untergebracht sind. Ist das der Hauptunterschied?
    Solch eine Funktion, die NEUE Daten zeigen kann suche ich nämlich!

    mfG

    Ich definiere neu:

    "select new" oder nur "select" bringen beide nichts, wenn ich z.B. eine ganze Tabelle markiere, z.B. Tabelle Artikel. Egal wie oft ich diese so Abfrage, die Daten bleiben die alten (Obwohl ich sie zwischenzeitlich geändert habe).

    Wenn ich allerdings "select artikel.ek" abfrage, also eine bestimmte Spalte, dann ist diese Aktuell, aber nicht wenn ich die ganze Tabelle hole und dann anzeigen lasse!!

    Weder mit LinqToSQL noch mit Entitie Framework. Warum ist das so??? Hoffentlich weiß diesmal jemand Rat, ich möcht einfach nicht was hergeben, wo ich nicht weiß warums läuft! ;.)

    mfG
    Zuletzt editiert von Flo_Plus; 02.02.2011, 02:11.
    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
    Also ich bin kein Entity Framework Spezialist. Aber ich denke das new bezieht sich nicht auf das SELECT, sondern es erzeugt einfach wie im .NET Framework überall anders auch eine neue Instanz eines Objekts.
    In deinem Fall wäre das ein anonymes Objekt welches als einzige Property i hätte, diese wäre vom Typ eines Elements in testdata.test.
    Typischerweise verwendet man SELECT wenn man die Ergebnismenge irgendwie umformen möchte.

    [highlight=c#]
    public class Person
    {
    public String Vorname { get; set; }
    public String Nachname { get; set; }
    }

    public IEnumerable<String> HoleNachnamenDerPersonen(IEnumerable<Person> personen)
    {
    return from person in personen
    select person.Nachname;
    }

    public void TesteHoleNachnamenDerPersonenErgebnis()
    {
    var personen = new List<Person>()
    {
    new Person() { Vorname = "Tobias", Nachname = "Meier" },
    new Person() { Vorname = "Thomas", Nachname = "Schmidt" }
    };

    IEnumerable<String> nachnamenDerPersonen = HoleNachnamenDerPersonen(personen);

    Assert.AreEqual("Meier", nachnamenDerPersonen.First());
    Assert.AreEqual("Schmidt", nachnamenDerPersonen.Skip(1).First());
    }
    [/highlight]

    Comment

    Working...
    X