我有一个表Unit
,其中包含两列UnitName
n UnitDescription
。UnitName
是主键n我已在UnitName
添加了唯一名称约束。
现在,当我通过我的应用程序使用linq添加数据时,如果我添加一个重复的单元名称并且不在数据库中添加数据,则会捕获duplicate key exception
,但此后即使添加唯一的单元名称,它仍会捕获duplicate key exception
并给我一个关于name existing
的消息对话框,但它在数据库中添加了数据。为什么会这样呢?
DemoDataContext DC = new DemoDataContext();
ObservableUnit Ob_unit;
private void btn_save_unit()
{
try
{
tbl_unit unit = new tbl_unit();
unit.unitname = txt_unit name.Text();
DC.tbl_unit.InsertOnSubmit(unit);
Ob_unit.Add(unit);
DC.SubmitChanges();
}
catch(DuplicateKeyException)
{
Message.Show(message);
}
}
class ObservableUnit : ObservableCollection<tbl_unit>
{
public ObservableUnit(DemoDataContext DDC)
{
foreach (tbl_unit thisUnit in DDC.tbl_units)
{
this.Add(thisUnit);
}
}
}
DC
由linq自动创建,DataContext
Ob_unit
为ObservableCollection
tbl_Unit
全局声明
Plz告诉我如何解决它。谢谢你