Я создаю динамическую таблицу, когда веб-сайт активен с помощью этого кода:
public void CreateTable(string tableName, string field1, double field2, ...)
{
string Raw = string.Format("CREATE TABLE [{0}] ([ID] UNIQUEIDENTIFIER NOT NULL, [{1}] NVARCHAR (MAX) NOT NULL, [{2}] FLOAT NOT NULL, ..., , CONSTRAINT[PK_{0}] PRIMARY KEY CLUSTERED([ID] ASC);", tableName, field1, field2);
_context.Database.ExecuteSqlRaw(Raw);
_context.SaveChanges();
}
Теперь я хочу запустить запрос SQL, выбрав что-то вроде этого:
private readonly ApplicationDbContext _context;
public HomeController(ApplicationDbContext context)
{
_context = context;
}
public void List(string tableName)
{
string Raw = string.Format("SELECT * FROM [{0}];", tableName);
var table = _context.Database.ExecuteSqlRaw(Raw);
//--- Do something with table here
}
ПРИМЕЧАНИЕ. Я пытаюсь использовать отражение следующим образом:
var table = _context.GetType().GetProperty(tableName).GetValue(_context) as IQueryable;
Но не работает и возвращает NULL.
Я все еще новичок в C#, очень признателен, если вы можете показать мне пример, основанный на этом коде.
"SELECT * FROM dbo.[{0}]"
. Я предполагаю, что схема вновь созданных таблиц находится в dbo. - person KingOfArrows   schedule 10.04.2020