Именованные параметры с параметрами
У меня есть метод для получения значений из базы данных.
public virtual List<TEntity> GetValues(
int? parameter1 = null,
int? parameter2 = null,
int? parameter3 = null,
params Expression<Func<TEntity, object>>[] include)
{
//...
}
Как я могу вызвать эту функцию с именованным параметром, чтобы не писать все параметры до include
?
Я хочу сделать что-то вроде этого
var userInfo1 = Unit.UserSrvc.GetValues(include: p => p.Membership, p => p.User);
Но это не работает? Как использовать параметр named с параметрами?
Ответы
Ответ 1
Я думаю, что единственный способ - это что-то вроде:
GetValues(include:
new Expression<Func<TEntity, object>>[] { p => p.Membership, p => p.User })
Что не так здорово. Было бы лучше всего, если бы вы добавили перегрузку для этого:
public List<Entity> GetValues(params Expression<Func<Entity, object>>[] include)
{
return GetValues(null, null, null, include);
}
Затем вы вызываете свой метод так же, как
GetValues(p => p.Membership, p => p.User)
Ответ 2
Аргумент A params
работает как массив, попробуйте этот синтаксис:
var userInfo1 = Unit.UserSrvc.GetValues(include: new Expression<Func<TEntity, object>>[] { p => p.Membership, p => p.User });
(Может потребоваться адаптация из-за общего параметра, но я думаю, что вы получите его суть)