[英]How to set Convert Zero Datetime in Entity Framework connection string
I am trying to connect to MySQL database using Entity Framework 5. Everything works fine when using the connection string supplied by app.config: 我正在尝试使用Entity Framework 5连接到MySQL数据库。使用app.config提供的连接字符串时,一切工作正常:
<add name="MHEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=MySql.Data.MySqlClient;provider connection string="server=server.example.com;user id=username;password=pass;persistsecurityinfo=True;database=dbname;convertzerodatetime=True;characterset=utf8"" providerName="System.Data.EntityClient" />
However, I need to create the connection in code (I want to be able to supply the db password at runtime). 但是,我需要用代码创建连接(我希望能够在运行时提供db密码)。 So far I have the following code: 到目前为止,我有以下代码:
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(@"Convert Zero Datetime=true;");
sqlBuilder.DataSource = "server.example.com";
sqlBuilder.InitialCatalog = "dbname";
sqlBuilder.UserID = "username";
sqlBuilder.Password = "password";
sqlBuilder.IntegratedSecurity = true;
// sqlBuilder.Add("convertzerodatetime", "true");
string providerString = sqlBuilder.ToString();
EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Metadata = @"res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl";
entityBuilder.Provider = "MySql.Data.MySqlClient";
entityBuilder.ProviderConnectionString = providerString;
ConnString = entityBuilder.ConnectionString;
MHEntities context = new MHEntities(ConnString);
And that works. 那行得通。 But as soon as I uncomment the one line in the code above, I get an exception: 但是,只要取消注释上面代码中的一行,就会出现异常:
Keyword not supported: 'convertzerodatetime'. 不支持的关键字:“ convertzerodatetime”。 I tried "Convert Zero Datetime" with same results. 我尝试了“转换零日期时间”,结果相同。
I need this setting (Convert Zero Datetime=true), because without it the app fails when it tries to load datetime values from the database with all zeros (I have no control over those). 我需要此设置(Convert Zero Datetime = true),因为如果没有它,则应用程序尝试从全零加载数据库中的datetime值时将失败(我无法控制这些值)。
as error message says, SqlConnectionStringBuilder does not support the convertzerodatetime keyword. 如错误消息所述,SqlConnectionStringBuilder不支持convertzerodatetime关键字。 Consider using the MySqlConnectionStringBuilder instead. 考虑改用MySqlConnectionStringBuilder 。
'Convert Zero Datetime' works on EF 6, can you update your library? “转换零日期时间”在EF 6上有效,您可以更新库吗? Try to change your web.config from 'convertzerodatetime=True' to 'Convert Zero Datetime=True'. 尝试将您的web.config从'convertzerodatetime = True'更改为'Convert Zero Datetime = True'。
<add name="MHEntities" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=MySql.Data.MySqlClient;provider connection string="server=server.example.com;user id=username;password=pass;persistsecurityinfo=True;database=dbname;characterset=utf8;Convert Zero Datetime=True"" providerName="System.Data.EntityClient" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.