2015-12-17 66 views
4

我想創建2級超級簡單的表的實體模型,我在MemSQL創建:是否可以在MemSQL中使用EntityFramework?

CREATE TABLE foo(id int primary key auto_increment, name varchar(20)); 
CREATE TABLE t(id int primary key auto_increment); 

我使用實體框架6.1.x.我安裝了MySQL連接器,因爲MemSQL與MySQL是二進制協議兼容的,在我的項目中添加了一個新的ADO.NET實體模型,並通過嚮導走過。遇到以下問題:

  1. 大多數時間嚮導嘗試查詢表和視圖列表。它可能會這樣做,因爲MemSQL羣集在Azure中是遠程的。我會嘗試在明天創建一個本地虛擬機羣並再試一次。
  2. 它成功讀取表和視圖列表的時間,我選擇了兩個表,然後讓實體框架生成模型。我得到以下錯誤:

Unable to generate the model because of the following exception: 'System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT(COLUMN_TYPE,10) = 'tinyint(1)', 'bool', IF (LEFT(COLUMN_TYPE,10) ' at line 47

所以我很茫然。是否可以使用實體框架與MemSQL?

回答

2

看起來實體框架正在使用MemSQL尚不支持的LEFT內建函數。它將在2016年初的MemSQL 5中得到支持。

+0

您是否知道如果我咬緊牙關並採用「代碼優先」方法,它是否會起作用? – AngryHacker

+0

另外,您如何知道何時可以使用LEFT功能?有沒有可用的路線圖?我沒看到它。 – AngryHacker

+0

我在MemSQL的工程團隊。我們尚未發佈詳細的功能路線圖。 我會在內部檢查是否有人對MemSQL使用實體框架。我沒有嘗試過,但你的方法是正確的。 –

相關問題