使用EF5绑定到数据网格视图问题
本文关键字:网格 视图 问题 数据网 数据 EF5 绑定 使用 | 更新日期: 2023-09-27 18:24:51
我是EF的新手,目前正在使用EF5尝试将视图中的数据绑定到WinForms应用程序中的数据网格视图。我不知道如何正确地做到这一点,我得到了一个错误:
不支持直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)的数据。相反,使用数据填充DbSet,例如通过调用DbSet上的Load,然后绑定到本地数据。对于WPF绑定到DbSet.Local。对于WinForms绑定到DbSet.Local.ToBindingList()。
这是我的代码:
using (MyEntities context = new MyEntities ())
{
var qry = from col in context.vwSystemProperties
select new
{
SystemPropertyName = col.SystemPropertyName,
SystemPropertyEnumVal = col.SystemPropertyEnumVal,
SystemPropertyValue = col.SystemPropertyValue,
ApplicationScope = col.ApplicationScope,
CategoryScope = col.CategoryScope,
EntityScope = col.EntityScope,
VersionDate = col.VersionDate,
VersionUser = col.VersionUser
};
BindingSource bs = new BindingSource();
bs.DataSource = qry;
SystemPropertyDGV.DataSource = bs;
}
我想我还没有完全理解这个错误指示我做什么。我做了一些简短的搜索,但我认为我没有找到我需要的东西。DbSet应该如何实现和用于将数据绑定到DGV,或者有更简单的方法吗?
可以为我提供一些关于如何将qry对象正确绑定到数据网格视图的见解吗?现在我只需要查看数据,但今后我希望能够访问一行并根据ID进行更新。
感谢
只需对返回的查询使用ToList()
方法。
尝试以下操作:
using (MyEntities context = new MyEntities ())
{
var qry = from col in context.vwSystemProperties
select new
{
SystemPropertyName = col.SystemPropertyName,
SystemPropertyEnumVal = col.SystemPropertyEnumVal,
SystemPropertyValue = col.SystemPropertyValue,
ApplicationScope = col.ApplicationScope,
CategoryScope = col.CategoryScope,
EntityScope = col.EntityScope,
VersionDate = col.VersionDate,
VersionUser = col.VersionUser
};
BindingSource bs = new BindingSource();
bs.DataSource = qry.ToList();
SystemPropertyDGV.DataSource = bs;
}