【问题标题】:Using Entity Framework as a Web Part's Data Source in Sharepoint 2010在 Sharepoint 2010 中使用实体框架作为 Web 部件的数据源
【发布时间】:2011-02-18 15:39:48
【问题描述】:

我有一个非常简单的 Web 部件。我有一个单一的网格视图,我使用 linq 填充到实体(或者至少这是我想要做的)。实体数据模型 .edmx 文件与 Web 部件位于同一项目中,并且一切看起来都正常。当我调试项目时,它在实体模型构造函数上爆炸并显示错误消息:

指定的命名连接是 在配置中找不到, 不打算与 EntityClient 提供者,或无效。

我在App.Config中的连接字符串如下:

<add name="MyDBEntities" connectionString="metadata=res://*/MyDBEntityModel.csdl|res://*/MyDBEntityModel.ssdl|res://*/MyDBEntityModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyServer;Initial Catalog=MyDB;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

构造函数:

public MyDBEntities() : base("name=MyDBEntities", "MyDBEntities")

所以,根据我在其他地方读到的内容,我的问题是 SharePoint 看不到我的连接字符串。这意味着,当我运行/调试项目时,我的项目中的 App.Config 实际上并没有加载到 SharePoint 中。如果是这种情况,那么我如何在 Visual Studio 2010 中设置我的项目,以确保 SharePoint 除了主 SharePoint 配置文件之外还选择 App.Config。如果我必须手动复制连接字符串,是否有这样做的“最佳实践”程序?与实体框架相结合的 SharePoint Web 部件是否还没有准备好迎接黄金时段?

【问题讨论】:

    标签: c# .net entity-framework web-parts sharepoint-2010


    【解决方案1】:

    用于 Visual Studio 2010 的 SharePoint 工具已经出现,并将自动将许多必要的条目添加到 web.config 中。不幸的是,他们不会为您创建实体框架条目。为此,您需要为添加 EF 连接字符串的 Web 部件项目编写功能接收器。

    SharePoint API 有一个名为 SPWebConfigModification 的对象。您应该编写一个使用此类的 FeatureActivated 事件来对 web.config 进行修改,然后编写一个 FeatureDeactivating 事件来删除修改。

    -格雷格

    【讨论】:

    • :) 非常感谢,您让我免于将东西移出 EF
    【解决方案2】:

    我在 SharePoint 2010 WebPart 中遇到了同样的异常,我终于让它工作了,但我在此过程中学到了两件重要的事情。

    1. 您必须使用场解决方案而不是沙盒解决方案。原因是沙盒解决方案无法访问网站集之外的数据。一个更有意义的异常将有助于快速解决这个问题,但我收到了上述异常。

    2. 您的连接字符串必须在您安装 WebPart 的 Web 应用程序的 web.config 中。它不会在您安装 WebPart 时自动添加,因此您必须按照 Greg 上面列出的方式更新 web.config,或者手动编辑它。它位于 C:\inetpub\wwwroot\wss\VirtualDirectories{WebApplicationName}\web.config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      相关资源
      最近更新 更多