実行時にストアドプロシージャからDataTable
の列を取得しています。コードは次のようになります。クラスのプロパティを作成し、実行時にプロジェクトに追加します
var parkDataTable = new DataTable("tmp");
...
SqlCommand cmd = new SqlCommand("FooStoredProcedure", db.Database.Connection as
SqlConnection, transaction.UnderlyingTransaction as SqlTransaction);
cmd.CommandType = CommandType.StoredProcedure;
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
parkDataTable.Load(dr);
私の列には、列名に日付を追加することでさまざまな名前を付けることができます。たとえば、カラム名が2017-09-01_FactPark
、次回のカラムが2017-10-01_FactPark
になります。 、列に以下の画像を参照してください。
私は、実行時に列の列名と数量について知ることができます。
それは、実行時にプロパティとして上記の列を持つクラスを作成し、通常の方法のように、これらのプロパティにそれらを投影することが可能です:
public IQueryable<EmployeeDTO> GetEmployees()
{
return db.Employees
.Select(employee => new EmployeeDTO
{
ID = employee.ID,
FirstName = employee.PriceNumber,
LastName = employee.PriceDate
}).AsQueryable();
}
だから私の目標はDataTable
からプロパティを持つクラスを作成することですプロパティを持つクラスに列DataTable
を投影します。
実行時にプロパティを作成して、クラスDataTable
の新しく作成されたプロパティに列を投影することは可能ですか?
* 2017-0901_FactPark *、* 2017-10-01_FactPark * ...誰かが正規化を必要とします... – JohnyL
あなたは許可されていないか、または許可されていませんか? :) – JohnyL
@JohnyL列名はストアドプロシージャのSELECT文によって作成され、このSELECT文を変更することはできません。 – StepUp