Linq to Entities是否会抛出SqlExceptions?

时间:2010-09-09 08:28:39

标签: c# .net sql linq entity-framework

我正在使用linq实体, 我的实体模型位于MSSQL数据库之上。

我想知道实体的linq是否会抛出SqlExceptions。
换句话说,如果连接数据库时出现问题,下面的代码是否会成功捕获异常?
如果没有,那么在将linq用于实体时处理异常的最佳方法是什么?

        using (MyUserEntities userEntities = new MyUserEntities(connectionString))
        {
            try 
            {
                if (userEntities.Users.Any<User>(userInDB =>
                                                 userInDB.UserName == username))
                    {
                       //Do Something
                    }
                    else
                    {
                       //Do Something else
                    }
            }
            catch(SqlException e)
            {
            }
        }

1 个答案:

答案 0 :(得分:1)

是的,如果您的功能中的任何进程导致问题,

userEntities.Users.Any<User>(userInDB =>
                                             userInDB.UserName == username)

它将引发一个级联异常,它会被捕获。

尽管db连接有一个特定的超时设置,但有时这需要一段时间。

你为什么不测试它?你自己可以找到这个答案