C# 如何在实体框架连接字符串中设置转换零日期时间
我正在尝试使用EntityFramework5连接MySQL数据库。使用app.config提供的连接字符串时,一切正常:C# 如何在实体框架连接字符串中设置转换零日期时间,c#,mysql,entity-framework-5,C#,Mysql,Entity Framework 5,我正在尝试使用EntityFramework5连接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
<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" />
这就行了。但是,一旦我取消注释上面代码中的一行,我就会得到一个异常:
不支持关键字:“convertzerodatetime”。我尝试了“转换零日期时间”,结果是一样的
我需要这个设置(Convert Zero Datetime=true),因为如果没有它,当应用程序尝试从数据库加载带有所有零的日期时间值时会失败(我无法控制这些值)。正如错误消息所说,SqlConnectionStringBuilder不支持convertzerodatetime关键字。考虑使用代替.“转换零时间”在EF 6上工作,你能更新你的库吗?尝试将web.config从“convertzerodatetime=True”更改为“convertzerodatetime=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" />
SqlConnectionStringBuilder
用于MS自己的SqlConnection
连接,不用于MySQL或其他提供商。您需要为MySQL寻找替代方案。
<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" />