我有以下代码-
public bool InsertUser(params)
{
User objUser = new User(params);
objDataContext.Users.InsertOnSubmit(objUser);
objDataContext.SubmitChanges();
return objUser.Id >= 0;
}
调用方法 -
if (!_database.InsertUser(params))
{
//WriteErrorMessage
}
据我从各种帖子中了解到,如果我们想知道插入是否成功,我们应该检查是否抛出任何异常。
但是上面的代码依赖于新插入的Id是否>=0。
可以请指导吗 -
- 我是否应该更改上面的代码并添加一个 try-catch ?
- 是否有任何可能的情况,SubmitChanges() 不会抛出错误,但新插入的 Id <= 0 ?
谢谢!
最佳答案
If I should change above code and add a try-catch instead?
不,不要这样做,因为在这种情况下您将无法获得失败的确切原因。如果您捕获它,则失败信息将丢失并且不会传播给用户。
但是,如果您认为向用户提供异常不是一个好主意,并且您需要捕获它,那么只需将其放在 try catch 中,如下所示:
public bool SubmitChanges()
{
try{
//your code
db.SubmitChanges();
return true;
}
catch(Exception e)
{
// some code to catch exception
return false;
}
}
Is there any possible scenario where no error is thrown by SubmitChanges() but newly inserted Id <= 0 ?
如果您获得的值 >=0,则无需担心这一点。
您还可以使用GetChangeSet像这样:
Gets the modified objects tracked by DataContext.
ChangeSet cs = db.GetChangeSet();
Console.Write("Changes: {0}", cs);
关于c# - Linq to SQL - SubmitChanges() - 检查插入是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789466/