能否在MemSQL中使用EntityFramework?

5

我正在尝试为我在MemSQL中创建的2个超级简单的表创建实体模型:

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

我正在使用Entity Framework 6.1.x。我安装了MySQL连接器,因为MemSQL与MySQL具有二进制协议兼容性,并在我的项目中添加了一个新的ADO.NET实体模型,然后按照向导操作。在进行如下问题时遇到了麻烦:
  1. 大部分时间,向导都会超时尝试查询表和视图列表。可能是因为MemSQL集群在Azure中远程运行。我明天将尝试创建本地vm集群,并再次尝试。
  2. 有时它确实成功读取了表和视图列表,我选择这两个表,然后让Entity Framework生成模型。我收到以下错误消息:

由于以下异常无法生成模型:'System.Data.Entity.Core.EntityCommandExecutionException:在执行命令定义时发生错误。有关详细信息,请参见内部异常。---> MySql.Data.MySqlClient.MySqlException:您的SQL语法存在错误;请检查与您的MySQL服务器版本相对应的手册以使用正确的语法,例如'LEFT (COLUMN_TYPE,10) =' tinyint(1) ',' bool ',             如果(左(COLUMN_TYPE,10)'位于第47行

所以我很困惑。是否可以使用Entity Framework来处理MemSQL?

1个回答

2

看起来实体框架正在使用MemSQL目前不支持的LEFT内置函数。这将在2016年初发布的MemSQL 5中得到支持。


你知道如果我勇敢尝试一下"先写代码"的方法,它是否可行吗? - AngryHacker
此外,您如何知道 LEFT 函数何时可用?是否有可用的路线图?我没有看到它。 - AngryHacker
我在 MemSQL 的工程团队。我们还没有公布详细的功能路线图。我会内部核实是否有人使用 Entity Framework 支持 MemSQL。我自己没有尝试过,但您的方法是正确的。 - Adam Prout
谢谢。听起来不错。如果可以的话,我宁愿不使用直接查询。 - AngryHacker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接