2011-04-30 1 views
1

Je suis un exemple de mon livre MVC2 (ASP.NET MVC 2 Framework). Ma question concerne LINQ to SQL et une base de données mySQL. Les exemples de livres se connecte à SQL Server, je me connecte à une base de données mySQL.MVC2 avec mySQL et LINQ to SQL

Jusqu'à présent, je suis en mesure de se connecter à la DB et tirer les dossiers ... Cependant, je remarque que je suis erroring sur la déclaration LINQ suivante:

 return View(productsRepository.Products 
      .Skip((page - 1) * PageSize) 
      .Take(PageSize) 
      .ToList() 
      ); 

J'ai lu que LINQ to SQL ne supportait pas initialement mySQL, cependant, avec le connecteur mySQL .Net cela a-t-il changé? LINQ to SQL est-il entièrement supporté pour mySQL maintenant?

Y a-t-il des références qui pourraient m'aider à comprendre les différences si mySQL n'est toujours pas supporté complètement?

Merci

BTW le message d'erreur que je reçois est:

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près '(ORDER BY t0. ProductId, t0. Name, t0. Description, t0. Price, t0.' à la ligne 3

+0

Si vos pages sont indexées à zéro (ce qui signifie qu'ils comptent 0,1,2, ..., n plutôt que 1,2,3, ..., n), alors cela signifie que votre premier page passerait '-1 * PageSize', un nombre négatif. Que se passe-t-il si vous supprimez «-1 *» de votre code (en supposant que vos pages soient indexées à zéro)? – KPthunder

+0

@KPthunder - J'ai aussi pensé à ça, mais après avoir sorti le - 1, j'ai toujours la même erreur. – webdad3

Répondre

1

LINQ à SQL ne supporte que SQL Server.

Si le support MySQL est nécessaire, vous devriez essayer d'utiliser un autre ORM, comme Entity Framework ou NHibernate.

en ce qui concerne l'erreur renvoyée lorsque vous essayez d'exécuter la requête ab En outre, cela est dû au fait que la syntaxe SQL utilisée par SQL Server pour la pagination est radicalement différente de celle utilisée par les autres bases de données relationnelles.

+0

@simon - c'est ce dont j'avais peur ... Y a-t-il des options que je pourrais avoir avec MVC2 et mySQL? – webdad3

+0

@Jeff - J'ai mis à jour ma réponse. S'il vous plaît demander plus si vous avez d'autres questions. –

+0

@Jeff, NHibernate a le support de Linq. Cela fonctionne un peu différemment de Linq2Sql, mais peut être connecté à presque n'importe quel magasin relationnel. – JasonTrue

1

Commander DbLinq

+0

On dirait qu'il n'a pas été mis à jour depuis 2008 ... Si c'est le cas, c'est dommage. Merci pour le lien si. – webdad3