2017-07-28 1 views
0

Ich weiß, dass es viele Lösungen für solche Abfragen gibt, aber ich kann keine davon implementieren.Dynamischer Tabellenname in MVC mit Entity Framework erhalten

Ich übergebe Tabellenname an meine Funktion und möchte, dass die EF das Tabellenergebnis für den jeweiligen übergebenen Tabellenwert erhält.

Also das ist meine Funktion (a JsonResult) in Controller: -

public JsonResult FetchTblData() 
{ 
     string MyTableName= Request.Form["TblName"].ToString(); 

    using (EBContext db = new EBContext()) 
    { 
     try 
     { 
      var EduTblList = db.(**MyTableName**).ToList(); // want to implement it here. 
     } 
     catch (Exception ex) 
     { 
      string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : ""; 
     } 

     return new JsonResult { Data = EduTblList, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
    } 
} 

Wie kann ich es ohne viel Code-Änderung tun und einfachste Ansatz mit EF oder LINQ? Bitte helfen

+1

Einfach und ohne Änderungen: https://stackoverflow.com/questions/31033055/dynamic-table-names-in-entity-framework-linq – Spectarion

+0

Mögliche doppelte von [Dynamische Tabellennamen in Entity Framework linq] (https://stackoverflow.com/questions/31033055/dynamic-table-names-in-entity-framework-linq) –

+0

'var EduTblList = db.Set (typeof (EBContext) .Assembly.GetTypes(). Wobei (x => x.Name == MyTableName) .First()). ToList(); ', im Fall des Klassennamens ist dies der gleiche wie der Tabellenname. –

Antwort

0

Try Below-Code:

public JsonResult FetchTblData() 
    { 
      string MyTableName= Request.Form["TblName"].ToString(); 

     using (EBContext db = new EBContext()) 
     { 
      try 
      { 
      Type tableType; 
       switch(MyTableName) 
       { 
       case "MyTableName": 
        tableType= typeof(TableEntityName); 
        break; 
       } 
       var dbquery = context.Set(tableType); 
       var EduTblList = result.ToList(); // want to implement it here. 
      } 
      catch (Exception ex) 
      { 
       string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : ""; 
      } 

      return new JsonResult { Data = EduTblList, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; 
     } 
    } 
+0

Kann diesen Code nicht verstehen: - var dbquery = context.Set (tableType); var EduTblList = result.ToList(); // möchte es hier umsetzen. – Deepak

Verwandte Themen