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 回答