Строка подключения в WCF с LINQ, C #, VS2008 - PullRequest
0 голосов
/ 20 мая 2009

Я добавил файл DBML с соответствующей строкой соединения и действительными учетными данными. Я зарегистрировал свой VPN-сервер, на котором размещен SQL-сервер, и я хотел проверить свою службу WCF с точки зрения того, какие ошибки будут возникать, если она не сможет найти БД.

public List<Users> GetName(strinng UserEmail)
{

  var dbResult = from u in Users
                 where u.email.Equals(UserEmail)
                 select {v.Firstname, v.LastName, v.Zip};

  //Build List<Users>
  return List<users>;
}

Скажи, что это один из моих методов. При вызове метода без доступа к моей БД я не вижу никакой ошибки. Как я могу проверить, является ли соединение действительным и существует ли БД?

Я предположил, что файл DBML.cs обеспечил бы эту проверку в cstor

Ответы [ 2 ]

1 голос
/ 21 мая 2009

Когда я запускал мой маленький тест, мой тест не удался, когда я пытался выполнить ToList () (что связано с задержкой выполнения LINQ). Я получил SqlException, когда не удалось установить соединение ... потребовалось немного времени, чтобы исключение вернулось, но это неизбежно произошло.

вот мой маленький тестовый код LINQ:

TestDataContext con = new TestDataContext();
        var users = from user in con.Users
                    select user;
        //failed on this line...
        IList<User> faUsers = users.ToList();

Мой тест состоял в том, что я просто выключил свой экземпляр Sql Server.

Если вы говорите об отладке с клиентской стороны этого вызова веб-метода, возможно, соединение с веб-методом истекает до соединения между веб-службой и сервером базы данных .... и это может быть вашим исключением из-за превышения времени ожидания.

0 голосов
/ 21 мая 2009

Даже если это не ваш вопрос, вы можете упростить свой метод с помощью чего-то вроде этого (не проверено):

  var dbResult = from u in db.Users
                 where u.email.Equals(UserEmail)
                 select new User() 
                 {
                     FirstName = u.Firstname, 
                     LastName = u.LastName, 
                     Zip = u.Zip
                 };

  return dbResult.ToList();

// обновление: измененные опечатки скопированы из исходного вопроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...