【发布时间】:2013-09-24 17:47:35
【问题描述】:
我正在使用 xtragrid 来保存、加载和修改数据。现在切换到 EF5 后,它就不起作用了。尝试将我的代码更改为local 和tobindinglist,但数据库中没有任何更改。有什么建议吗?
public partial class formKonstruksiyon : Form
{
public Tank_Analizor_DBEntities db;
public formKonstruksiyon()
{
InitializeComponent();
db = new Tank_Analizor_DBEntities();
}
private void formKonstruksiyon_Load(object sender, EventArgs e)
{
konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local.ToBindingList();
gridControl1.DataSource = konstruksiyonBindingSource.DataSource;
}
private void barButtonItemSave_ItemClick(object sender,
DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
db.SaveChanges();
LibStatic.ShowSuccessMessage();
}
catch (Exception ex)
{
LibStatic.ShowErrorMessage(ex);
}
}
private void silToolStripMenuItem_Click(object sender, EventArgs e)
{
gridView1.DeleteRow(gridView1.FocusedRowHandle);
}
}
更改后的一些更新:
konstruksiyonBindingSource.DataSource = db.Konstruksiyon.ToList();
private void barButtonItemSave_ItemClick(object sender,
DevExpress.XtraBars.ItemClickEventArgs e)
{
LibStatic.GridPostPendingRow(gridView1);
try
{
konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local.ToBindingList();
db.SaveChanges();
LibStatic.ShowSuccessMessage();
}
catch (Exception ex)
{
LibStatic.ShowErrorMessage(ex);
}
}
它有点保存:如果我只添加一个条目它不会保存,但如果我添加两个它会保存。这怎么可能?
【问题讨论】:
-
你用
db.Konstruksiyon试过了吗? -
是的,我收到一条错误消息,提示“不支持直接将数据绑定到存储查询(DbSet、DbQuery、DbSqlQuery)。”,但这是我一直使用的方法,直到 ef5
-
一个简单的谷歌搜索你的错误信息给了我this。你调查过吗?
-
是的,我一开始就是这么做的,尝试绑定本地数据源。但问题是绑定源不存在。
-
你可以试试
db.Konstruksiyon.ToList();,只要上下文在显示网格时保持活动状态,实体应该有更改跟踪。
标签: c# entity-framework xtragrid