クラスのプロパティ リストを関数に渡したい。プロパティ リストに基づく関数で、クエリを生成します。Linq Select メソッドとまったく同じ機能です。ここでは、これを Ingress データベースに実装します。
例として、
フロントエンドで、このように選択を実行したいのですが、
私のエンティティクラスはこのようなものです
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 プロパティの値を取得できます。
私の Select 関数は次のようになるはずです。
(*これは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式の専門家ではありません。
MIT からDbLinqと呼ばれるプロジェクトがありますが、それは大きなプロジェクトであり、それでもそこから役立つものを得ることができませんでした。
誰かがこれを始めるのを手伝ってくれませんか、または誰かがこれについて読むのに役立つリソースをリンクしてくれませんか。