2 Stimmen

Alle Felder einer Tabelle mit Entity Framework auswählen

Im folgenden Code werden alle Felder aus den Tabellen zurückgegeben, mit Ausnahme der Felder, die Fremdschlüssel sind. Wie bekomme ich die Fremdschlüsselfelder zur Anzeige? Ich möchte einfach eine Entsprechung zu select * from tableName.

        public ActionResult ShowAllTables() 
    {

        var model = new CSLA_StagingModel()
        {

            depots = db.CSLA_DEPOT.Where(c => c.DEPOT_ID == 10065).ToList<CSLA_DEPOT>(),
            addresses = db.CSLA_ADDRESS.Where(a => a.CSLA_DEPOT.DEPOT_ID == 10065).ToList<CSLA_ADDRESS>(),
        };

        return View(model);

    }

Hinweis: Ich verwende Vs2008

EDIT: Ich denke, ich könnte Linq to SQL verwenden, bis ich VS2010 bekomme

1voto

Craig Stuntz Punkte 124703

Es gibt keine SELECT * .

Das können Sie aber, Projekt die IDs:

var q = from a in db.CSLA_ADDRESS
        select new
        {
            ADDRESS_ID = a.ADDRESS_ID,
            DEPOT_ID = a.CSLA_DEPOT.DEPOT_ID,
            // etc.
        };

1voto

Morteza Manavi Punkte 32528

In Entity Framework 3.5 und VS 2008 werden Fremdschlüssel unter ihren Navigationseigenschaften versteckt (auch bekannt als Unabhängige Vereinigung ) und sind nicht direkt über das Zielentitätsobjekt zugänglich. Um auf sie zuzugreifen, müssen Sie also ihre Navigationseigenschaften verwenden (z. B. CSLA_DEPOT ) wie der Code, den Craig gepostet hat.

0voto

Slappy Punkte 3932

Ich würde das FK-Feld als eine Skalierungseigenschaft der Entität hinzufügen. Wenn dieser FK-WERT eine geschäftliche Bedeutung hat, ist es nicht verkehrt, ihn zu Ihrem konzeptionellen Modell hinzuzufügen. Dadurch wird auch der Code diskreter und lesbarer.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X