实体框架:设置MySQL自定义环境变量 [英] Entity Framework : Set MySQL custom environment variables

查看:237
本文介绍了实体框架:设置MySQL自定义环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Entity Framework 5.0的问题。我也在使用Silverlight 5和MySQL 5.6。

I have an issue with Entity Framework 5.0. I'm working with Silverlight 5 and MySQL 5.6 too.

我需要在每个连接到MySQL服务器之前设置一个环境MySQL变量。

例如


SET @my_var ='test';

SET @my_var = 'test';

在Mysql下我没有任何问题。

Under Mysql I don't have any issues.

以下引发了一个 EntityFrameworkException (@附近的语法错误)。

The following raises an EntityFrameworkException (syntax error near '@').

this.ObjectContext.CreateQuery<object>(" SET @my_var = 'test' ");

this.ObjectContext.CreateQuery<object>(" CALL set_my_var('test') ");

最后一个方法引发了一个MySQLException,表示DataReader已经打开,需要关闭。

This last method raises a MySQLException saying that a DataReader is already open and need to be closed.

this.ObjectContext.ExecuteStoreQuery<object>(" CALL set_my_var('test') ", null);

我还试图设置一个MySQL系统环境(不@),每次都有相同的结果。

I also tried to set a MySQL system environment (no '@') with the same result every time.

任何帮助将不胜感激!
谢谢。

Any help will be much appreciated ! Thank you.

推荐答案

由于您的语句不是查询(即不返回任何结果),您应该使用 ExecuteStoreCommand 。这样做应该可以工作:

Since your statement is not a query (i.e. does not return any result) you should use ExecuteStoreCommand. Something like this should work:

ctx.ExecuteStoreCommand("SET @my_var = 'test'")

这篇关于实体框架:设置MySQL自定义环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆