2010-05-12 9 views
5

Tengo un elemento web muy simple. Tengo una vista de cuadrícula única, que estoy rellenando usando linq para entidades (o al menos eso es lo que quiero hacer). El archivo Entity Data Model .edmx se encuentra en el mismo proyecto que el elemento web, y todo parece estar en buen estado. Cuando depurar el proyecto, que explota en el modelo de entidad constructor con el mensaje de error:Uso de Entity Framework como fuente de datos de un elemento web en Sharepoint 2010

La conexión con nombre especificado es o bien que no se encuentra en la configuración, no esté destinado a utilizarse con el proveedor EntityClient, o no es válido

Mi cadena de conexión en el app.config es el siguiente:

<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" /> 

El constructor:

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

Así, a partir de lo que he leído en otro lugar, mi problema es que SharePoint no puedo ver mi cadena de conexión Lo que significa que App.Config de mi proyecto no se está cargando en SharePoint cuando ejecuto/depuro el proyecto. Si ese es el caso, entonces cómo configuro mi proyecto en Visual Studio 2010 para asegurarme de que SharePoint seleccione App.Config además del archivo maestro de configuración de SharePoint. Si tengo que copiar manualmente la cadena de conexión, ¿hay un procedimiento de "mejores prácticas" para hacerlo? ¿Los elementos web de SharePoint combinados con Entity Framework simplemente no están listos para el horario de máxima audiencia?

Respuesta

6

Las herramientas de SharePoint para Visual Studio 2010 han recorrido un largo camino y harán automáticamente muchas de las entradas necesarias en web.config. Desafortunadamente, no harán entradas de Entity Framework para usted. Para hacer esto, necesitará escribir un receptor de función para su proyecto de pieza web que agrega la cadena de conexión EF.

La API de SharePoint tiene un objeto denominado SPWebConfigModification. Debería escribir un evento FeatureActivated que use esta clase para hacer su modificación a web.config y luego un evento FeatureDeactivating que elimine la modificación.

-Greg

+0

:) Muchas gracias, me has salvado de mover cosas de EF – anpatel

1

que estaba luchando con un mismo excepción en un WebPart SharePoint 2010, y por fin tengo que trabajar, pero aquí hay dos cosas importantes que he aprendido a lo largo del camino.

  1. Debe utilizar una solución de granja de servidores en lugar de una solución de caja de arena. El motivo es que las soluciones de espacio aislado no tienen acceso a datos fuera de la colección de sitios. Una excepción más significativa hubiera sido útil para resolver esto rápidamente, pero estaba recibiendo la excepción como se indicó anteriormente.

  2. Su cadena de conexión debe estar en el web.config de la aplicación Web que instale su WebPart sucesivamente. No se agrega automáticamente cuando instala su WebPart, por lo que debe actualizar la web.config de la forma en que Greg enumera arriba, o editarla manualmente. Se asienta en C: \ inetpub \ wwwroot \ wss \ VirtualDirectories {WebApplicationName} \ web.config

Cuestiones relacionadas