[英]Saving data using Entity Framework 5.0 and xtragrid
我正在使用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);
}
}
它有點保存:如果我僅添加一個條目則不會保存,但是如果我添加兩個條目則會保存。 這怎么可能呢?
您應該將實體添加到上下文中,或者如果要執行更新,請附加實體並將State屬性設置為Modifyed:
嘗試讓數據源成為ObservableCollection ,而不是List:
konstruksiyonBindingSource.DataSource = db.Konstruksiyon.Local;
它知道更改何時發生,因此應該更適合於更改跟蹤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.