C#学习教程:使用EF5类将DataGridView绑定到数据库而不发送对数据库的更改模型优先方法,我想使用EF类将DataGridView绑定到数据库,以便自动同步对数据库或DataGridView的任何更改。这是我的代码://formlevelfieldsprivateBindingList_products;privateBindingSource_productSource=newBindingSource();...在表单加载事件中//使用EF类从数据库加载数据vartmp=_context.BaseCategorySet.OfType().ToList();//转换为IBindingList_products=newBindingList(tmp);_products.AllowEdit=true;_products.AllowNew=真;_productSource.DataSource=_products;//设置GridControl的数据源ProductGrid.DataSource=_productSource;我可以添加新行或更改数据,但这些更改不会发送到数据库-我错过了什么?我希望找到解决方案的其他事情......1)我添加了一个保存按钮来调用以将网格控件的数据显式更新到数据库,代码如下:_productSource.EndEdit();_context.SaveChanges();->这不会导致将新记录存储到数据库中2)我添加了一个代码来添加带有一组控件(文本框、DatePickers)的新记录,用于单个记录属性varx=_context.BaseCategorySet.Create();//设置所有x属性的值//在上述各个控件中设置的值_context.BaseCategorySet.Add(x);_context.SaveChanges();->当我使用它时当使用这种技术添加新记录时——它存储在数据库中,但又是奇怪的行为——这个新记录不会自动加载到网格控件中(但应该是,因为我将网格数据绑定到相应的EFDbSet...)还有一个奇怪的地方——我在DataGridView控件中对加载到数据库的记录所做的更新——这些更新被发送到数据库……3)我从DevExpressXtraGrid切换到XtraGridDataGridView控件,但那没有没有帮助...我搜索了很多关于EF数据绑定的主题但没有成功...不确定它是否重要,但我在我的实体模型中使用继承:产品派生自UnifOfSales,UnitOfSales派生自BaseCategory类我尝试过的东西我尝试了LadislavMrnka在这篇文章中建议的(..)。Local.ToBindingList如何在winforms中使用EF进行双向数据绑定?它确实将更改发送回数据库,但更改仅存储在基类表(BaseCategory)中,但也有一个用于派生类的表。这是我的绑定代码_context.BaseCategorySet.OfType.Load();//我尝试将派生类与OfType一起使用以确保编译器//知道这是派生类(Product)的实例,//而不是基类BaseCategory,//但我无法使用OfType获得“本地”。..ProductGridView.DataSource=_context.BaseCategorySet.Local.ToBindingList();我确实找到了解决方案!我必须在EF模型派生类的DbContext类中添加DbSetProducts(Product,派生自BaseCategory类)在此之后,我可以使用上面的C#学习教程:BindingDataGridViewtodatabaseusingEF5classeswithoutsendingchangestoIfallthecontentsharedbythedatabase对你有用,需要多了解C#学习教程,希望大家多多关注——ProductGridView.DataSource=_context.Products.Local.ToBindingList();本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
