[英]updating a record with entity framework not working
這是我的代碼:
...
Domain.Box updatedBox = entities.Boxes.FirstOrDefault(TextBoxBoxID.Text);
updatedBox = getBoxInfo();
entities.SaveChanges();
private Domain.Box getBoxInfo()
{
Domain.Box retBox = new Domain.Box();
retBox.BoxID = TextBoxBoxID.Text;
retBox.LocationID = Convert.ToDecimal(TextBoxLocationID.Text);
retBox.Positions = Convert.ToByte(TextBoxPositions.Text);
retBox.DiseaseID = RadComboBoxDisease.SelectedValue;
retBox.SampleTypeID = RadComboBoxSampleType.SelectedValue;
retBox.TubeTypeId = RadComboBoxTubeTypeID.SelectedValue;
return retBox;
}
代碼編譯和執行正常,但數據庫沒有變化,也就是說,所有信息都與更新前完全相同。 任何幫助將不勝感激,謝謝!
如果你想插入一個新的 Domain.Box object,你應該這樣做:
entities.Boxes.AddObject(getBoxInfo());
entities.SaveChanges();
無需創建updatedBox
object 因為您只是在覆蓋它。 如果我了解您的要求,您希望執行插入,而不是更新。
如果我不正確並且您正在嘗試更新updatedBox
object 的某些屬性,那么只需傳遞對 object 的引用並更新它的屬性:
Domain.Box updatedBox = entities.Boxes.FirstOrDefault(TextBoxBoxID.Text);
getBoxInfo(ref updatedBox);
entities.SaveChanges();
private void getBoxInfo(ref Domain.Box retBox)
{
retBox.BoxID = TextBoxBoxID.Text;
...
}
entities.SaveChanges();
我會這樣嘗試:
Domain.Box updatedBox = entities.Boxes.FirstOrDefault(TextBoxBoxID.Text);
getBoxInfo(updatedBox);
entities.SaveChanges();
private void getBoxInfo(Domain.Box retBox)
{
retBox.LocationID = Convert.ToDecimal(TextBoxLocationID.Text);
retBox.Positions = Convert.ToByte(TextBoxPositions.Text);
retBox.DiseaseID = RadComboBoxDisease.SelectedValue;
retBox.SampleTypeID = RadComboBoxSampleType.SelectedValue;
retBox.TubeTypeId = RadComboBoxTubeTypeID.SelectedValue;
}
我想你想這樣做:
Domain.Box updatedBox = entities.Boxes.FirstOrDefault(TextBoxBoxID.Text);
UpdateBoxInfo(updatedBox);
entities.SaveChanges();
private void UpdateBoxInfo(Domain.Box theBox)
{
theBox.BoxID = TextBoxBoxID.Text;
theBox.LocationID = Convert.ToDecimal(TextBoxLocationID.Text);
theBox.Positions = Convert.ToByte(TextBoxPositions.Text);
theBox.DiseaseID = RadComboBoxDisease.SelectedValue;
theBox.SampleTypeID = RadComboBoxSampleType.SelectedValue;
theBox.TubeTypeId = RadComboBoxTubeTypeID.SelectedValue;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.