我想我会尝试一下 Scott Guthrie 在 Entity Framework 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>
就像教程一样,我希望 EF4 自动为我生成数据库。相反,它会引发 ProviderIncompatibleException,并带有一个内部异常,抱怨 NerdDinners 数据库不存在。
很公平; 我去为它创建了 MySql 数据库,只是为了看看事情是否可行,并得到了另一个 ProviderIncompatibleException 。这一次,“提供者不支持DatabaseExists”。
我承认,这是我第一次真正深入研究实体框架(我主要使用 Linq to Sql),而且这一切都在上周才发布的 Code-First CTP 上运行。也就是说,我在这里做错了什么,还是可以解决的已知问题?