2012-06-21 23 views
7

Tôi đang cố gắng để sử dụng cơ sở dữ liệu mẫu của microsoft AdventureWorks2008R2 ... khi tôi cố gắng để tạo ra các mô hình dữ liệu ADO.NET thực thể tôi nhận được lỗi này:AdventureWorks không thể tạo ado.net mô hình dữ liệu thực thể

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. 

Bất cứ ai gặp phải và sửa lỗi này? Hoặc biết một nơi nào đó tôi có thể tải xuống phiên bản làm việc của cơ sở dữ liệu này (khác: http://msftdbprodsamples.codeplex.com/releases/view/59211 là nơi tôi nhận được)

Hoặc có thể trỏ đến cơ sở dữ liệu mẫu Tôi có thể tải xuống và sử dụng khung thực thể.

+0

bạn đang cố gắng để làm điều này sử dụng SQL Express với một chuỗi kết nối tập tin dựa trên? –

Trả lời

2

EDIT

Các nhà thiết kế EF mới (Beta 1 có sẵn here) sẽ không cố gắng tạo mối quan hệ cho các bảng không tồn tại nên thay vì các lỗi và trống rỗng mô hình mà bạn sẽ nhận được một mô hình mà các loại thực thể không hợp lệ/bộ và các mối quan hệ được nhận xét.

**

Tôi nhìn nó AdventureWorks cho Sql Server 2012 nhưng tôi nghĩ rằng đó là điều tương tự bạn nhấn cho 2008R2/ Vấn đề ở đây là bảng Production.Document có một chìa khóa đó là của Loại HierarchyId và EF hiện không hỗ trợ loại HierarchyId. EF bỏ qua các cột kiểu mà nó không hiểu khi tạo mô hình, tuy nhiên nếu nó không hiểu một cột khóa, nó sẽ loại trừ toàn bộ thực thể khỏi mô hình. Đối với các đối tượng bị loại trừ, bạn sẽ có thể tìm thấy chúng được nhận xét trong mô hình khi bạn mở nó bằng trình chỉnh sửa Xml/Text. Trong trường hợp này đây là những gì sẽ thấy:

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

Thông báo cảnh báo này:
cảnh báo 6031: Cột 'DocumentNode' trên bảng/xem 'AdventureWorks.Production.Document' đã được loại trừ, và là chìa khóa cột. Bảng/chế độ xem đã bị loại trừ. Vui lòng sửa đối tượng trong tệp lược đồ và bỏ ghi chú.

Bây giờ trong cơ sở dữ liệu AdventureWorks, bảng Production.Document được tham chiếu bởi bảng Production.ProductDocument. Vì không có thực thể nào cho bảng Production.Document được tạo nên, EF không thể tạo tham chiếu từ thực thể Production.ProductDocument và do đó "Production.Document" được tham chiếu bởi một mối quan hệ, nhưng không thể tìm thấy. ' Vì các bảng Production.Document không thể thực sự được sử dụng "như là" bởi EF cách giải quyết dễ nhất là loại trừ thực thể này khi tạo mô hình từ thực thể - kiểm tra tất cả các bảng nhưng Production.Document trong trình hướng dẫn và bạn nên được tốt để đi. EF sẽ bỏ qua tất cả các tài liệu tham khảo để tổ chức này kể từ khi bạn loại trừ nó và do đó nên không có lỗi.

Link to a related work item on Entity Framework codeplex site

Các vấn đề liên quan