Entity Framework 默认连接工厂

7

我最近使用实体框架4.3创建了一个新的Web项目。我正在使用数据库优先设计。

实体框架添加了这个部分到我的web.config,这给了一些信息性错误消息。我在某个地方读到这段代码与代码优先设计有关 - 我需要它吗 - 我只是删除它吗?

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="System.Data.SqlServerCe.4.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>

感谢您的信任。

什么是错误信息? - Joe Ratzer
@JoeR 我认为没有这样的东西。 - James
我不明白"提供一些信息性错误消息"的含义... - Joe Ratzer
@JoeR 我可能误解了它,但我认为它与你有时会收到的 XML 警告/提示有关。你尝试过删除配置并查看应用程序是否运行正常吗?这看起来像是你正在使用 SQLCE 4.0,如果是的话,我想你会需要它。 - James
@JoeR - 这是其中一条消息:无法找到元素“defaultConnectionFactory”的模式信息。我收到了类似的关于entityFramework、Parameter、Parameters和Type的消息。 - dotnetnoob
3个回答

24

以下内容可能非常相关(我加了粗体):

配置部分允许您指定Code First应使用的默认连接工厂来查找用于上下文的数据库。 当没有为上下文添加连接字符串时,默认连接工厂仅用作

请参见MSDN上的Entity Framework Config File Settings


3
我不确定是否很重要,如果您没有使用CodeFirst(请尝试删除它并查看是否正常运行)。但是,如果您正在使用CodeFirst并将SQLCE 4.0作为主数据库,则需要保留它。请参见文档

如果您没有设置默认的连接工厂,则Code First将使用SqlConnectionFactory,指向.\SQLEXPRESS。 SqlConnectionFactory还有一个构造函数,允许您覆盖连接字符串的某些部分。如果您想使用除.\SQLEXPRESS之外的SQL Server实例,则可以使用此构造函数设置服务器。


0
你会收到这些警告信息,是因为在Web.config中缺少entityFramework的section元素定义。它看起来像这样:(注意:以下是针对EF5.0的)
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接