0

ADO .Net エンティティ データ モデルを使用して Windows フォーム アプリケーションを開発しています。私はDataTable dt = new DataTable、dataBaseEtities を使用してデータベースからこの DataTable を作成するにはどうすればよいですか?

これが私のクエリです:

     from data in db.Sources 
     where data.IdTheme==idtheme 
     select data.Url;
4

1 に答える 1

1

次のような拡張機能を作成して、クエリに追加できます。

public static DataTable ToDataTable<T>(this List<T> items)
{
    var tb = new DataTable(typeof(T).Name);

    PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);

    foreach(var prop in props)
    {
        tb.Columns.Add(prop.Name, prop.PropertyType);
    }

    foreach (var item in items)
    {
        var values = new object[props.Length];
        for (var i=0; i<props.Length; i++)
        {
            values[i] = props[i].GetValue(item, null);
        }
        tb.Rows.Add(values);
    }

    return tb;
}

クエリは次のようになります。

var newDataTable = (from data in db.Sources
                    where data.IdTheme == idtheme
                    select data.Url).ToDataTable();
于 2013-05-20T01:52:13.890 に答える