Dus*_*sda 29 mysql asp.net-mvc ctp code-first entity-framework-4
我以为我会尝试使用Scott Guthrie 关于代码优先开发实体框架4 的最新帖子.而不是使用Sql Server,我正在尝试使用MySql.以下是我的web.config的相关部分(这是一个Asp.Net MVC 2应用程序):
<connectionStrings>
<add name="NerdDinners"
connectionString="Server=localhost; Database=NerdDinners; Uid=root; Pwd=;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
就像教程一样,我希望EF4能够自动为我生成数据库.相反,它会抛出一个ProviderIncompatibleException,内部异常抱怨NerdDinners数据库不存在.
很公平; 我去为它创建了MySql数据库只是为了看看事情是否可行,而是获得了另一个ProviderIncompatibleException.这次,"提供商不支持DatabaseExists".
我承认,这是我第一次真正钻研实体框架(我主要坚持使用Linq to Sql),而这一切都是在上周才发布的Code-First CTP上运行的.那就是说,我在这里做错了什么,或者是一个可以解决的已知问题?
Dar*_*ide 26
是的,终于让它与几个兴趣点合作.
总而言之,漫长的道路,但最终到底
**更新需要注意的另一点是,在使用MySQL部署MVC站点时,您最需要在Web.config中添加一个DataFactory.通常是因为MySql连接器与支持的MySQL版本不同.(经过多次头部刮伤后通过其他来源找到答案)只需添加:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
作为web.config的单独部分,确保设置与站点一起部署的MySQL.Data.dll 的版本号(也是一个好主意"复制为本地"的MySQL DLL以确保兼容性.
| 归档时间: |
|
| 查看次数: |
24444 次 |
| 最近记录: |