这是我的代码:
...
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;
}
代码编译并执行正常,但数据库不会更改,也就是说,所有信息都与更新前的信息完全相同。任何帮助将不胜感激,谢谢!
答案 0 :(得分:2)
如果要插入新的Domain.Box对象,应该这样做:
entities.Boxes.AddObject(getBoxInfo());
entities.SaveChanges();
无需创建updatedBox
对象,因为您只是覆盖它。如果我理解你的要求,你想要执行插入,而不是更新。
如果我不正确并且您正在尝试更新updatedBox
对象的某些属性,那么只需传递对该对象的引用并更新它的属性:
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();
答案 1 :(得分:0)
我会这样试试:
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;
}
答案 2 :(得分:0)
我想你想这样做:
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;
}