Я хочу передать список свойств класса в функцию. с помощью функции на основе списка свойств я собираюсь сгенерировать запрос. Как точно такая же функциональность в методе Linq Select.
Здесь я собираюсь реализовать это для входной базы данных.
Например,
в начале я хочу запустить выбор как это,
Мой класс сущностей такой же
public class Customer
{
[System.Data.Linq.Mapping.ColumnAttribute(Name="Id",IsPrimaryKey=true)]
public string Id { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Name")]
public string Name { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Address")]
public string Address { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Email")]
public string Email { get; set; }
[System.Data.Linq.Mapping.ColumnAttribute(Name = "Mobile")]
public string Mobile { get; set; }
}
Я хочу вызвать функцию Select следующим образом:
var result = dataAccessService.Select<Customer>(C=>C.Name,C.Address);
затем, используя результат, я могу получить значения свойств Name и Address.
Я думаю, что моя функция выбора должна выглядеть следующим образом,
(* Я думаю, что это должно быть сделано с помощью выражения Linq. Но я не уверен, что является входным параметром и типом возвращаемого значения. *)
Class DataAccessService
{
// I'm not sure about this return type and input types, generic types.
public TResult Select<TSource,TResult>(Expression<Func<TSource,TResult>> selector)
{
// Here I wanna Iterate through the property list, which is passed from the caller.
// Here using the property list,
// I can get the ColumnAttribute name value and I can generate a select query.
}
}
Это попытка создать функциональность, как в Linq. Но я не эксперт в Linq Expressions.
Есть проектный вызов DbLinq из MIT, но это большой проект, и все же я не могу получить от этого ничего полезного.
Может кто-нибудь, пожалуйста, помогите мне начать это, или кто-то может связать мне некоторые полезные ресурсы, чтобы прочитать об этом.