Я следую примеру из книги ASP.NET MVC 2 Framework (Стивен Сандерсон), за исключением того, что вместо SQLServer я использую mySQL.
public class ProductsController : Controller
{
private IProductsRepository productsRepository;
public ProductsController()
{
// Temporary hard-coded connection string until we set up dependency injection
string connString = "server=xx.xx.xxx.xxx;Database=db_SportsStore;User Id=dbUser;Pwd=xxxxxxxxx;Persist Security Info=True;";
productsRepository = new SportsStore.Domain.Concrete.SqlProductsRepository(connString);
}
public ViewResult List()
{
return View(productsRepository.Products.ToList());
}
}
Когда я запускаю проект, яполучить следующую ошибку:
Произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)
Я загрузил соединитель MySQL .Net и в обозревателе сервера я смог просмотретьтаблицы в этой БД.Я также удостоверился, что БД на сервере допускают удаленные подключения.
Я создаю и запускаю код локально через VS2010, а БД MySQL находится на размещенном сервере.
Что мне делатьнужно сделать, чтобы этот пример MVC2 работал для MySQL?
Обновление:
Я играл с кодом, ожидая ответа, и я обновил ProductsControllerна следующее:
using MySql.Data.MySqlClient;
string connString = "server=xx.xx.xxx.xxx;Database=db_SportsStore;User Id=dbUser;Pwd=xxxxxx;";
var connection = new MySqlConnection(connString);
productsRepository = new SportsStore.Domain.Concrete.SqlProductsRepository(connection);
Затем в хранилище:
public SqlProductsRepository(MySql.Data.MySqlClient.MySqlConnection connection)
{
connection.Open();
productsTable = (new DataContext(connection)).GetTable<Product>();
connection.Close();
}
Теперь я получаю совершенно другую ошибку:
{"Выесть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '[t0]. [ProductID], [t0]. [Name], [t0]. [Description],[t0]. [Price], [t0]. [Category] 'в строке 1 "}
Я также должен упомянуть ... В этом примере используется LINQ to SQL.Я не уверен, имеет ли это значение или нет.Пожалуйста, сообщите.