Mam sytuacje że UI może stworzyć sobie użytkownik, a co za tym idzie to on sobie dodaje nowe kolumny do bazy. Chciałbym móc pobrać wszystkie nazwy kolumn i typy z danej tabeli. Niestety dopóki nie zdefiniuję ich w modelu w EF Core to mi ich nie widzi. Oczywiście nie chce ich definiować, bo może być ich bardzo dużo.. Jak mogę pobrać wszystkie nazwy kolumn i typów z danej tabeli używająć EF Core?
Próbowałem przy użyciu komendy: FromSqlRaw
_dbContext.FoodSet.FromSqlRaw("SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'FoodSet'").ToList();
Niestety wywala exceptiona jakby coś było z SQL.
Próbowałem także tak, ale tutaj mam jedynie propertki widoczne z modelu:
var entityType = _dbContext.Model.FindEntityType("Shared.DataAccess.ScaffoldedEntities.FoodSet");
// Table info
var tableName = entityType.GetTableName();
var tableSchema = entityType.GetSchema();
var columnNameAndType = new List<Dictionary<string, string>>();
foreach (var property in entityType.GetProperties())
{
var columnName = property.GetColumnName();
var columnType = property.GetColumnType();
var dict = new Dictionary<string, string>();
dict.Add(columnName, columnType);
columnNameAndType.Add(dict);
};
Wydaje mi się, że przy użyciu EF Core musiałym jakoś użyć raw sql bez dbseta i wtedy pobrać wszystkie nazwy kolum itd.