用ado.net实体模型填充数据表



我正在开发ado.net实体数据模型的windows窗体应用程序。我有DataTable dt = new DataTable,我如何使用databasetities从数据库填充这个数据表?

这是我的查询:

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

您可以创建一个这样的扩展,然后将其添加到您的查询:

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();

相关内容

  • 没有找到相关文章

最新更新