2012-06-21 26 views
7

Estoy tratando de utilizar la base de datos de muestra de Microsoft AdventureWorks2008R2 ... cuando intento para crear el modelo de datos de entidad de ADO.NET consigo este error:AdventureWorks no pueden crear ado.net entidad modelo de datos

Unable to generate the model because of the following exception: 'The table 'C:\USERS\XXXX\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\ANOTHERWORKS\ANOTHERWORKS\APP_DATA\ADVENTUREWORKS2008R2_DATA.MDF.Production.Document' was referenced by a relationship, but was not found.'. 
Loading metadata from the database took 00:00:06.2308687. 
Generating the model took 00:00:04.5808698. 
Added the connection string to the Web.Config file. 
Successfully registered the assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' in the Web.Config file. 
Writing the .edmx file took 00:00:00.0015898. 

¿Alguien encontró y solucionó esto? O sabe en algún lugar que puedo descargar una versión de trabajo de esta base de datos (aparte de: http://msftdbprodsamples.codeplex.com/releases/view/59211 que es donde la obtuve)

¿O alguien puede señalar una base de datos de muestra que puedo descargar y usar con entidad marco.

+0

¿Estás tratando de hacer esto utilizando SQL Express con una cadena de conexión basada en archivos? –

Respuesta

2

EDITAR

El nuevo diseñador de EF (Beta 1 disponible here) no tratará la creación de relaciones a las tablas no existentes por lo que en lugar del modelo de error y vacío obtendrá un modelo donde los tipos de entidad no válidos/juegos y las relaciones se comentan.

**

lo miraba de AdventureWorks para SQL Server 2012, pero creo que es lo mismo que se golpea para 2008R2/ El problema aquí es que la mesa Production.Document tiene una clave que es de El tipo HierarchyId y EF actualmente no son compatibles con el tipo HierarchyId. EF ignora las columnas de tipos que no comprende al crear el modelo. Sin embargo, si no comprende una columna clave, excluirá toda la entidad del modelo. Para las entidades excluidas, debería poder encontrarlas comentadas en el modelo cuando las abra con un editor de texto/Xml. En este caso particular, esto es lo que va a ver:

<EntityContainer Name="AdventureWorksModelStoreContainer" /> 
    <!--Errors Found During Generation: 
    warning 6005: The data type 'hierarchyid' is currently not supported for the target .NET Framework version; the column 'DocumentNode' in table 'AdventureWorks.Production.Document' was excluded. 
    warning 6031: The column 'DocumentNode' on the table/view 'AdventureWorks.Production.Document' was excluded, and is a key column. The table/view has been excluded. Please fix the entity in the schema file, and uncomment. 

    <EntityType Name="Document"> 
    <Property Name="DocumentLevel" Type="smallint" StoreGeneratedPattern="Computed" /> 
    <Property Name="Title" Type="nvarchar" Nullable="false" MaxLength="50" /> 
    <Property Name="Owner" Type="int" Nullable="false" /> 
    <Property Name="FolderFlag" Type="bit" Nullable="false" /> 
    <Property Name="FileName" Type="nvarchar" Nullable="false" MaxLength="400" /> 
    <Property Name="FileExtension" Type="nvarchar" Nullable="false" MaxLength="8" /> 
    <Property Name="Revision" Type="nchar" Nullable="false" MaxLength="5" /> 
    <Property Name="ChangeNumber" Type="int" Nullable="false" /> 
    <Property Name="Status" Type="tinyint" Nullable="false" /> 
    <Property Name="DocumentSummary" Type="nvarchar(max)" /> 
    <Property Name="Document" Type="varbinary(max)" /> 
    <Property Name="rowguid" Type="uniqueidentifier" Nullable="false" /> 
    <Property Name="ModifiedDate" Type="datetime" Nullable="false" /> 
    </EntityType>--> 
    </Schema> 

Aviso esta advertencia:
advertencia 6031: La columna 'DocumentNode' en la tabla/vista 'AdventureWorks.Production.Document' fue excluido, y es una clave columna. La tabla/vista ha sido excluida. Corrija la entidad en el archivo de esquema y descomente.

Ahora en la base de datos AdventureWorks, la tabla Production.Document se referencia en la tabla Production.ProductDocument. Dado que no se creó ninguna entidad para la tabla Production.Document, EF no puede crear la referencia de la entidad Production.ProductDocument y, por lo tanto, una relación hace referencia al "Production.Document", pero no se puede encontrar. . De error

Desde la mesa Production.Document no se puede utilizar realmente "tal cual" por EF la solución más fácil es para excluir esta entidad cuando se genera el modelo de entidad - comprobar todas las mesas pero Production.Document en el asistente y debería ser bueno para ir. EF ignorará todas las referencias a esta entidad ya se ha excluido y por lo tanto no debe haber ningún error.

Link to a related work item on Entity Framework codeplex site

Cuestiones relacionadas