【发布时间】:2017-02-06 14:58:34
【问题描述】:
我正在尝试制作DataGridView 表单,它采用通用 DataSource 并显示数据。
我无法让数据绑定工作:
EntityFramework.dll 中出现“System.NotSupportedException”类型的未处理异常
附加信息:不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)。而是使用数据填充 DbSet,例如通过在 DbSet 上调用 Load,然后绑定到本地数据。对于 WPF 绑定到 DbSet.Local。对于 WinForms 绑定到 DbSet.Local.ToBindingList()。对于 ASP.NET WebForms,您可以绑定到在查询上调用 ToList() 的结果或使用模型绑定,有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=389592。
我尝试传递DataTable、DataSet 和List - 但没有运气...我的问题是我想使用存储库模式并创建一个通用存储库类,它可以处理我数据库中的不同表。
这是我第一次尝试编写存储库模式代码并使用泛型类型。
public DataGridForm(IEnumerable<???> source) // TEntity or T can't be recognized by VisualStudio as a type!
{
InitializeComponent();
// TODO: Complete member initialization
this.bindingSource.DataSource = source;
}
我很难把这个简单化。请任何关于如何实现这一目标的指南?
我称这个方法为:
public IEnumerable<TEntity> GetAll()
{
return Context.Set<TEntity>().ToList();
}
我知道这是一个很重要的问题,但我需要某种方式的帮助
~陈驰
更新:接受的答案没有问题,真正的问题是我的 AutoGenerateColumns 属性默认设置为 false!
dataGridView.AutoGenerateColumns = true;
通过代码隐藏将其设置为 true 使一切正常...我在属性窗口中寻找此属性,但找不到?!也许是某种我不知道的 Visual Studio 错误...
【问题讨论】:
-
这不是一个加载的问题。 “加载的问题”是包含有争议或不合理假设的问题。这不是这里的情况。
-
哇仍然没有帮助... :C
-
@Amy 你说得对,我的意思是重复问题
标签: c# winforms entity-framework datagridview generic-programming