私はこれで私の頭を壊しているし、あなたと私の問題を共有することにしました いくつかのテーブルから匿名の選択を作成したい、それらのいくつかは複数の結果を含むかもしれません。あるlinq:select句でメソッドを使用
var resultTable = from item in dc.table
select new
{
id= item.id,
name= CreateString((from name in item.Ref_Items_Names
select name.Name).ToList()),
};
とCreateString():私はこのような何かをした1つの文字列 にこれらの結果を連結したい私の意図は一覧表示するには、「名前」クエリを変換することであった
private string CreateString(List<string> list)
{
StringBuilder stringedData = new StringBuilder();
for (int i = 0; i < list.Count; i++)
{
stringedData.Append(list[i] + ", ");
}
return stringedData.ToString();
}
とそれをCreateString()に送り、それを1つの長い連結文字列に変換します。
私は、.Aggregate((current、next)=> current + "、" + next);を使ってみました。私は以下のようなデータテーブルに私のクエリを変換しようとすると しかし:私は「dc.GetCommand()は、」集計方法でクエリを理解できないという例外を取得しています
public DataTable ToDataTable(Object query)
{
DataTable dt = new DataTable();
IDbCommand cmd = dc.GetCommand(query as IQueryable);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = (SqlCommand)cmd;
cmd.Connection.Open();
adapter.Fill(dt);
cmd.Connection.Close();
return dt;
}
を 後で私もこれを使用しようとしました単純なクエリ:
var resultTable = from itemin dc.table
select new
{
name = CreateString()
};
何が「名前」に挿入されなかった、()が「成功」を返すCreateString select句でメソッドを使用する方法がない理由 ? ありがとうございます Yotam
すばやくお返事ありがとうございますが、問題は私が反復せずにIEumerableをDataTableに変換できないことです。私はそれをIQuerableに変換しようとしましたが、私は空のテーブルを得続けています – Yotam
反復処理の問題は何ですか?それがIEnumerableの目的です! – svick
問題は時間です、私は12000行が時間がかかる可能性があり、私は反復時間を保存するためにquaryでそれを行うことを望んだが、私はこれらの値を挿入する必要があるときに各行のDBから抽出する必要がある30値を挿入していますIQuerableまたはIEnumerableのToDataTable()メソッドはありません。 – Yotam