Динамически, когда у вас есть DbSet как строка (ваш случай):
DbSet mySet = context.Set(Type.GetType("<Your Entity Name>"));
Источник: https://entityframeworkcore.com/knowledge-base/33940507/find-a-generic-dbset-in-a-dbcontext-dynamically
Помимо всего этого, динамическое построение строки с параметрами внутриобычная практика.
Обычно это достигается с помощью фигурных скобок внутри строки, например:
это в столбце базы данных: "Здравствуйте, меня зовут {User.FirstName}, я пришелfrom {User.Country} "
Обычно это предопределенные значения, и в коде вы можете заменить их, потому что ожидаете их.
Затем вы делаете:
var userId = ...get this from session or from whatever you have in your context.
var dbUser = db.User.FirstOrDefault(x => x.UserId == userId);
var template = db.Templates.FirstOrDefault(x => x.TemplateName = "userTemplate");
// template is the Db table and TemplateValue is the column
var text = template.TemplateValue;
text = text.Replace("{User.FirstName}", dbUser.Firstname);
text = text.Replace("{User.Country}", dbUser.Country);
Тоработает, но вы должны знать заранее параметры (они должны быть предварительно определены).Если вы не знаете, какой параметр должен быть отправлен (по крайней мере, отправитель должен знать, что они существуют в виде таблиц / столбцов БД), то да, это более сложно, и вам следует придерживаться предложенного нами динамического подхода.
Удачи!