【发布时间】:2011-03-18 01:31:30
【问题描述】:
我想我会在使用 Entity Framework 4 的代码优先开发中对 Scott Guthrie 的 latest post 进行一些试验。我尝试使用 MySql,而不是使用 Sql Server。以下是我的 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>
就像教程一样,我希望 EF4 自动为我生成数据库。相反,它会引发 ProviderIncompatibleException,内部异常抱怨 NerdDinners 数据库不存在。
很公平;我去为它创建了 MySql 数据库,只是为了看看事情是否可行,然后得到了另一个 ProviderIncompatibleException 。这一次,“提供者不支持DatabaseExists”。
我承认,这是我第一次真正深入研究实体框架(我主要使用 Linq to Sql),而且这一切都在上周发布的 Code-First CTP 上运行。也就是说,我在这里做错了什么,还是可以解决的已知问题?
【问题讨论】:
-
你说得对,确实存在 mysql 提供程序 (stackoverflow.com/questions/76488/…)。可能 CTP 位有错误,或者 MySQL 提供程序缺少功能(或两者兼有)。
-
你能在 MVC 4 中使用简单的成员资格吗?
标签: mysql asp.net-mvc entity-framework-4 code-first ctp