2011-04-30 72 views
1

我正在從我的MVC2書(ASP.NET MVC 2框架)的例子。我的問題是關於LINQ to SQL和一個mySQL數據庫。書籍示例連接到SQLServer,我正在連接到一個mySQL數據庫。MVC2與mySQL和LINQ到SQL

到目前爲止,我已經能夠連接到數據庫和拉記錄......不過,我注意到,我示數以下LINQ聲明:

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

我讀過, LINQ to SQL最初並不支持mySQL,但是,mySQL .Net連接器是否改變了? LINQ to SQL現在是否完全支持mySQL?

如果mySQL尚未完全支持,是否有任何引用可以幫助我理解差異?

感謝

BTW我得到的錯誤信息是:

您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用附近的手冊 '(ORDER BY t0ProductIdt0Namet0Descriptiont0Pricet0。' 在3號線

+0

如果您的網頁索引從零開始(這意味着他們數0,1,2,...,N,而不是1,2,3,...,N),那麼這意味着你的第一個頁面會跳過負數的「-1 * PageSize」。如果從代碼中刪除'-1 *'(假設頁面爲零索引),會發生什麼? – KPthunder 2011-04-30 19:52:05

+0

@KPthunder - 我想到了這一點,但是,在我拿出-1之後,我仍然得到同樣的錯誤。 – webdad3 2011-04-30 19:57:39

回答

1

LINQ到SQL只支持SQL Server。

如果需要MySQL的支持,你應該嘗試使用其他ORM,如實體框架或NHibernate的。

在問候試圖執行查詢時,AB拋出的錯誤這是因爲SQL Server用於分頁的SQL語法與其他關係數據庫使用的SQL語法有很大不同。

+0

@simon - 這就是我害怕的...有沒有我可能與MVC2和mySQL有關的選項? – webdad3 2011-05-01 00:19:15

+0

@Jeff - 我已經更新了我的答案。如果您有更多問題,請再次詢問。 – 2011-05-01 00:24:38

+0

@Jeff,NHibernate有Linq支持。它的工作原理與Linq2Sql有所不同,但可以連接到幾乎任何關係型商店。 – JasonTrue 2011-05-01 00:26:21

1

結帳DbLinq

+0

它看起來從2008年起還沒有更新過...如果情況太糟糕。感謝您的鏈接。 – webdad3 2011-05-01 00:49:54