Мне нужно взять предметы из таблицы X и найти их по свойству B
Как я могу сделать это динамически? потому что я так тяжело борюсь с типами
Я думал о чем-то вроде кода ниже
и реализации интерфейса для всех этих типов пользователя / автомобиля / компании
это будет "указывать" на желаемое свойство (имя / модель / название компании)
Извините, если я не выразил себя должным образом, я надеюсь, что код покажет проблему лучше.
public IActionResult test(string type, string value)
{
var exp = GetExpression(type, value);
return View(GetCount(exp));
}
public Expression<Func<???, bool>> GetExpression(string type, value)
{
switch (type)
{
case "User":
return x => x.FirstName == value;
case "Car":
return x => x.Model == value;
case "Company":
return x => x.CompanyName == value;
default:
return null;
}
}
public int GetCount(Expression<Func<???, bool>> exp, ??? Table)
{
return _context.Table.Where(exp).Count();
}
public class User
{
public string FirstName { get; set; }
}
public class Company
{
public string CompanyName { get; set; }
}
С интерфейсом:
public interface IExpressionable
{
public string Helper;
}
public class User : IExpressionable
{
public string FirstName { get; set; }
public string Helper => FirstName;
}
public class Car : IExpressionable
{
public string Model { get; set; }
public string Helper => Model;
}
public class Company: IExpressionable
{
public string CompanyName { get; set; }
public string Helper => CompanyName ;
}