我刚学习Linq to SQL并且不太了解。请指导和帮助我。
我使用SubmitChanges()添加新记录;如何确认已添加记录?例如,在使用存储过程时,我们使用将标志发送回应用程序但是如何在LINQ to SQL中完成?请指导我。
答案 0 :(得分:3)
允许您的代码流出您的方法。只有在抛出异常时,您的陈述才会完成。
如果你想要一个'旗帜',你可以返回一个布尔。
public bool AddCustomer()
{
try{
....
db.SubmitChanges();
return true;
}
catch(Exception e)
{
...
return false;
}
}
答案 1 :(得分:2)
你可以做这样的事情;
public void Save()
{
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
}
catch (Exception err)
{
//Log error
}
}
如果没有抛出异常,您可以假设数据保存正确。虽然另一种选择是这样的。
public bool Save()
{
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
return true;
}
catch (Exception e)
{
//Log the error
return false;
}
}
如果保存成功,将返回True,否则将返回false
答案 2 :(得分:2)
请参阅:MSDN, How to: Submit Changes to the Database
请注意,有一个overload of SubmitChanges()可让您指定如何处理冲突。
答案 3 :(得分:1)
选中此http://msdn.microsoft.com/en-us/library/bb399378.aspx
此时,数据库检测到的任何错误都会导致提交过程停止,并引发异常。对数据库的所有更改都将回滚,就像没有发生任何提交一样。 DataContext仍然可以完整记录所有更改。因此,您可以尝试更正问题并再次调用SubmitChanges
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
// Make changes here.
try
{
db.SubmitChanges();
}
catch (ChangeConflictException e)
{
Console.WriteLine(e.Message);
// Make some adjustments.
// ...
// Try again.
db.SubmitChanges();
}