2012-12-20 17 views
6

Tôi đang cố gắng tiếp cận cơ sở dữ liệu đầu tiên bằng cách tạo Mô hình dữ liệu thực thể ADO.NET bằng trình hướng dẫn với DB Adventureworks2012.Trình hướng dẫn mô hình dữ liệu thực thể không tạo bảng trong tệp EDMX

Kiểm tra kết nối DB hoạt động và chuỗi kết nối được thêm vào App.Config.

Tôi đang chọn tất cả các bảng ngoại trừ các bảng được đánh dấu là (dbo) AWBuildVersion, DatabaseLogErrorLog.

Khi trình hướng dẫn hoàn thành tệp .edmx để trống và nếu tôi xem tệp ở chế độ xem XML, EntityContainer sẽ trống.

Sau khi mô hình được tạo ra nó sẽ trả về lỗi này trong cửa sổ đầu ra:

Không thể để tạo ra các mô hình do các ngoại lệ sau đây: 'Các AdventureWorks2012.Production.Document bảng được tham chiếu bởi một mối quan hệ, nhưng không thể được tìm thấy.

Tôi đang sử dụng VS 2010 & .NET Framework 4.0

Trả lời

3

Dường như Entity Framework không biết làm thế nào để đối phó với các loại dữ liệu như HierarchyId đặt trên một cánh đồng bảng. Tôi đã xóa bảng Production.Document để xem danh sách các thực thể bao gồm giải quyết vấn đề của tôi. Lưu ý rằng tài liệu tham khảo dưới đây là cho Adventureworks 2008R2 với EF phiên bản 1.0 từ Mã Plex SQL Sever, và tôi đang sử dụng Adventureworks 2012 từ cùng một trang CodePlex sử dụng phiên bản EF 4.4.

tham khảo: http://msftdbprodsamples.codeplex.com/wikipage?title=AW2008Details

Lưu ý: EF 1.0 vấn đề tương thích

Đội Entity Framework muốn chúng tôi cho bạn biết rằng AdventureWorks2008 là một chút về phía trước của đường cong về mặt Katmai tính năng nó sử dụng . Một số kiểu dữ liệu trong AdventureWorks2008 (chẳng hạn như hệ thống phân cấp và hình học) không được hỗ trợ trong khung thực thể. Giải pháp thay thế là loại trừ các bảng như Production.Document khỏi mô hình của bạn nếu có thể vì hiện tại không có hỗ trợ cho kiểu dữ liệu phân cấp trong Entity Framework 1.0. Thật không may, công cụ khung Entity mà cập nhật mô hình của bạn từ cơ sở dữ liệu sẽ kéo các bảng như Production.Document ngay cả khi chúng được loại trừ một cách cụ thể khi mô hình được tạo ra, do đó việc sử dụng tính năng đó trên AdventureWorks2008R2 không được hỗ trợ tại thời điểm này. Chúng tôi mong đợi một phiên bản tiếp theo của Entity Framework có hỗ trợ kiểu SQL Server 2008 đầy đủ. Lần sửa cuối vào ngày 25 tháng 5 năm 2010 lúc 2:22 chiều bởi bonniefe, phiên bản 17

0

Có một cách để thực hiện NẾU bạn đang cố gắng học từ ví dụ này và không làm gì có ý nghĩa. Tôi đã xóa các khóa nước ngoài vào bảng vi phạm và loại bỏ nó và đã có thể thành công nhận được

0

Bỏ chọn hộp kiểm [Allow Nulls] (trong thiết kế bảng) cho tất cả các khóa ngoài của Bảng chưa được tạo (Bảng không được chuyển đổi cho mô hình).

enter image description here

Sau đó, bạn có thể cập nhật mô hình của bạn để lấy những bảng bằng cách thực hiện các bước sau: -

Bước 1 - Nhấp chuột phải một số nơi trong thiết kế tập tin .EDMX của bạn (tức là Model1.EDMX [Diagram1 Bước 2 - sau đó từ Trình đơn ngữ cảnh chọn/Cập nhật mô hình từ cơ sở dữ liệu .... Bước 3 - sau đó chọn "Thêm" Bước 4 - sau đó mở "Bảng" Hộp kiểm và chọn bảng bạn muốn (bảng không lần đầu tiên được tạo) Bước 5 - sau đó nhấp vào nút Hoàn tất Bước 6 - Lưu giải pháp và hy vọng mọi thứ sẽ là Ok.

enter image description here

Lưu ý: Tôi đang sử dụng Visual Studio 2013.

Chúc may mắn.