当前位置: 首页 > 面试题库 >

将MySql与Entity Framework 4和Code-First Development CTP结合使用

乌骏
2023-03-14
问题内容

我以为我会试验一下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”。

我承认,这是我第一次真正研究Entity Framework(我主要是对Linq to Sql的坚持),而这一切都在上周发布的Code-First
CTP上运行。也就是说,我在这里做错什么了吗,还是可以解决一个已知问题?


问题答案:

是的,终于有了一些兴趣点了。

  • 无法创建数据库,必须已经存在
  • 您必须使用DBContext名称为每个数据库竞赛创建一个连接字符串(在上面的示例中,连接字符串必须以名称“ NerdDinners”存在),而不仅仅是一个默认字符串(否则它将使用SQL)
  • 它将使用您用于将上下文定义为表名的DBSet名称的名称,因此在命名它们时要小心。

总而言之,这是一条漫长的路,但最终

**更新要注意的另一点是,当使用MySQL部署MVC站点时,您最需要将DataFactory添加到web.config中。通常是因为那里的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>

作为web.config的单独部分,请 确保设置 与站点一起部署的MySQL.Data.dll 的版本号 (也是“将MySQL
DLL复制为本地”以确保兼容性的一个好主意。



 类似资料:
  • 问题内容: 我们将Robotium与一起用于测试。虽然如此,我们想用Robotium代替Espresso,但是我们仍然有一些疑问,因为我们有一台装有Jenkins的CI机器。 Espresso使用的是Robotium ,而Robotium使用的是第一个,我们希望能够同时使用两个测试框架。可能吗?我们如何在文件中指定呢?我们如何配置我们的詹金斯机器,以针对不同的测试框架执行不同的任务? 我知道Esp

  • 问题内容: 我正在使用Hibernate Validator 4.0.2,Spring 3.0和Hibernate 3.3.2(据我所知,是JPA2之前的版本)作为JPA 1提供程序。 我发现将Validator集成到MVC层很容易(这是可行的),但是看不到如何将验证器自动集成到JPA entityManager(JPA 1)中。 基本上,我有一些实体将保留下来,但它们不是来自Web层,因此尚未经

  • 问题内容: 我是Python的新手,并且开始自学使用PyQT4.7和Python 2.6进行GUI编程(希望如此) 我刚刚从PyQT网站下载了整个PyQT / QT4软件包(包括QTDesigner),但是看起来QTDesigner看起来像个新手,因为每个小部件都看起来很棒(因为您可以看到所有属性/属性/默认设置等)编辑属性很棒,但是PyQT似乎没有设置QTDesigner与PyQT和PyQTs

  • 问题内容: 我试图了解Java java.security.Signature 类的作用。如果我计算一个SHA1消息摘要,然后使用RSA加密该摘要,则得到的结果与要求 Signature 类对同一事物进行签名的结果不同: 结果(例如): 输入数据:这是正在签名的消息 摘要:62b0a9ef15461c82766fb5bdaae9edbe4ac2e067 密码文本:057dc0d2f7f54acc9

  • 问题内容: 我在SO上发现了其他几个有关JavaMail API和通过SMTP服务器发送邮件的问题,但是没有一个使用TLS安全性进行讨论。我正在尝试使用JavaMail通过我的工作SMTP邮件服务器向我发送状态更新,但是它需要TLS,而且我在网上找不到任何有关如何使用JavaMail访问需要TLS加密的SMTP服务器的示例。有人能帮忙吗? 问题答案: 实际上,我们的产品中确实有一些通知代码,如果有

  • 我已经阅读了一些关于SaaS/PaaS/IaaS的信息,我在想: 如果我提供了一个SaaS应用程序,我的客户能否使用PaaS开发和部署他自己的应用程序,PaaS将使用一些API与我的SaaS应用程序交互?还是我对云服务的理解有误?