【发布时间】:2014-01-13 18:50:22
【问题描述】:
使用 c#,net.4.5 与 2012
我正在尝试使用实体框架从数据库中获取数据。
最初的想法是使用如下代码 - 它必须允许在 dataGridView 中添加、删除和更新条目,而不仅仅是使用 context.SaveChanges() 保存更改(如果我没记错的话,来自 ObjectSet 的方法)
using (LibraryEntities context = new LibraryEntities())
{
var query = (from c in context.Book select c).First();
DataGridView dgv = new DataGridView();
dgv.DataSource = context.Book;
}
结果 - 异常
不支持直接将数据绑定到存储查询(DbSet、DbQuery、DbSqlQuery)...
然后我尝试稍微修改一下代码:
using (LibraryEntities context = new LibraryEntities())
{
var query = (from c in context.Book select c).First();
DataGridView dgv = new DataGridView();
dgv.DataSource = query;
}
但有相同的异常问题
不支持直接将数据绑定到存储查询(DbSet、DbQuery、DbSqlQuery)...
最后尝试全部转换为List():
using (LibraryLib.LibraryEntities context = new LibraryLib.LibraryEntities())
{
DataGridView dgv = new DataGridView();
dgv.DataSource = (from c in context.Book select c).ToList();
}
正如预期的那样,我在 DataGridView 中获得了所有 db 条目,但我无法添加、更新和删除任何条目。
问题是 - 我如何更改 dataGridView 中的 db,而不是使用 DbContext.SaveChanges() 保存它
【问题讨论】:
-
@ElliotTereschuk,SO 是一个仅限英文的网站。谷歌提供这个作为翻译
Hey. Try to consider the ready examples are not quite understand everything -
@paqogomez 谢谢,我知道 - 这是因为在这里很少见到乌克兰人 ;)
-
@Elliot Tereschuk Привіт, а що саме нечітко описано? / HI,有什么问题没有正确描述?
-
@Elliot Tereschuk。 так, але коли я приводжу до колекції, я отримую результат。 проблема в тому。 що я не можу видалити або додати запис до
DataGridViewВ останньому варіанті - все добре працює。 Що хочу я - пернести всю базу даних доDataGridView。 редагувати її (видаляти міняти значення додавати рядки. тощо)。 Апотім повністю зберегти。 Як це зробити?, адже спробувавши так як описано в книжці - видає виключення。 -
@Elliot Tereschuk。是的,但是当我尝试收集时 - 一切正常,但我无法在
DataGridView中做任何事情。我想要什么 - 它是在DataGridView中加载所有数据库,而不是修改其实体并更改它们(意味着添加、删除或更新),而不仅仅是使用DbContext.SaveChanges()保存它 - 就像我看到的许多教程中所述 - 但我由于存在异常而不能
标签: c# .net winforms entity-framework datagridview