Joh*_*son 2 c# mysql asp.net entity-framework asp.net-mvc-3
我在使用Entity Framework 6和MySQL时遇到了问题,并且在ASP.NET C#MVC 3中使用模型/数据库优先技术.
目前的情况是我收到错误:
Keyword not supported.
Parameter name: metadata
Run Code Online (Sandbox Code Playgroud)
元数据在web.config -file的连接字符串中指定:
<add name="SiteNameContainer"
connectionString="metadata=res://*/Models. SiteName.csdl|
res://*/Models. SiteName.ssdl|
res://*/Models. SiteName.msl;
provider=MySql.Data.MySqlClient;
provider connection string='server=127.0.0.1;
user id=fire;password=fire_db;
database=fire_dotnet'"
providerName="MySql.Data.MySqlClient" />
Run Code Online (Sandbox Code Playgroud)
我试图删除connectionString中的元数据部分,但后来说它不支持关键字"provider",然后不支持"provider connection string".
我的web.config文件中也有这两个部分:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices,
MySql.Data.Entity.EF6, Version=6.8.3.0,
Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<clear />
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySql.Data.MySqlClient"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory,
MySql.Data, Version=6.8.3.0, Culture=neutral,
PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
我引用了MySQL Net-connector 6.8.3文件(MySql.Data,MySql.Data.Entity.EF6,MySql.Web).
我的要求是我必须使用MySQL和Entity Framework 6,.NET连接器的更改日志说6.8.x增加了对MySQL的支持.
我没有想法,希望有人可以帮助我.提前致谢.
小智 5
看起来您可能在连接字符串中使用了错误的providerName,它应该是System.Data.EntityClient.
这是我最终得到的模型优先代码与MySQL一起使用以及我的app.config看起来如何:
<connectionStrings>
<add name="MyEntities"
connectionString="metadata=res://*/Data.Entity.Model.csdl|res://*/Data.Entity.Model.ssdl|res://*/Data.Entity.Model.msl;provider=MySql.Data.MySqlClient;provider connection string="Data Source=localhost;User Id=dbadmin;Password=password;Initial Catalog=database_name;""
providerName="System.Data.EntityClient"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
如果不起作用,这里是entityFramework部分.您会注意到我在下一节中使用的codeConfigurationType属性.它为MySQL添加了依赖项解析器,但还有其他方法可以在MySQL中阅读:EF 6支持文档.
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15382 次 |
| 最近记录: |