Я занимаюсь заменой Dapper на EF Core в проекте. В частности, используя новые функции Database.SqlQuery и Database.ExecuteSql с EF Core. Мне нравится, как они используют FormattableString для обработки параметров SQL.
Однако я не понимаю, что делать, если я хочу использовать как интерполяцию строк, так и фигурные скобки для параметров с помощью FormattableStrings? Ниже приведен пример версии Dapper и нерабочей версии EF Core. Я бы не хотел, чтобы "subSql" передавался как параметр, а просто создавал строку.
Как бы я к этому подошел?
public IEnumerable GetSomethingWithDapper(string id, bool enabled, string type)
{
var subSql = switch (type) {
case "A":
"TableA";
break;
case "B":
"TableB";
break;
};
var sql = $"SELECT * FROM {subSql} WHERE Id = @id";
// My dapper request here
}
public IEnumerable GetSomethingWithEFCore(string id, string type)
{
var subSql = switch (type) {
case "A":
"TableA";
break;
case "B":
"TableB";
break;
};
FormattableString sql = $"SELECT * FROM {subSql} WHERE Id = {id}";
// My EF Core request here
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... in-c-sharp