2011-01-06 22 views
16

newbie to Entity Framework tại đây. Sử dụng DB 2010 và SQL Server 2008 thể hiện DB.Cách xóa và thêm lại đúng Mô hình dữ liệu thực thể

Tôi gặp sự cố khi làm mới Mô hình dữ liệu thực thể sau khi thêm bảng mới. Vì vậy, tôi đã làm theo một gợi ý tôi tìm thấy ở đây để chỉ xóa và tạo lại mô hình.

Tôi nhận được phần "Chọn kết nối dữ liệu của bạn" của Trình hướng dẫn mô hình dữ liệu thực thể và "Lưu cài đặt kết nối thực thể trong Web.config dưới dạng:" được chọn. Tuy nhiên, tên hiện tại của tôi có 1 được thêm vào nó. Ví dụ MyDatabaseEntities bây giờ là MyDatabaseEntities1. Tất nhiên, tôi không muốn "1" nối thêm. Tôi đã giết chuỗi kết nối hiện có trong Web.config và xóa tất cả các tham chiếu đến tên đó trong giải pháp của tôi. Tuy nhiên, khi tôi cố gắng để tiếp tục Tôi trình bày với các lỗi sau:

"mâu thuẫn 'MyDatabaseEntites' với một tên thuộc tính tồn tại trong Cài đặt ứng dụng Vui lòng chọn một cái tên khác"

tôi không thể tìm thấy một tham chiếu đến tên đó ở bất kỳ đâu trong giải pháp. Tôi có thể bỏ chọn tùy chọn đó và nó sẽ tiếp tục, nhưng nó sẽ không thêm hai trong số các bảng trong cơ sở dữ liệu. Tiếp theo, tôi hoàn toàn tắt mọi thứ, khởi động lại và thử lại. Lần này tôi đã không nhận được lỗi ở trên, nhưng hai trong số ba bảng mới của tôi vẫn không được thêm vào mô hình edmx.

Bất kỳ ý tưởng nào được đánh giá cao. Ngoài ra điều này có vẻ như nó vẫn còn khá buggy ngay cả trong VS2010/.NET 4. Trợ giúp khôi phục lại niềm tin của tôi ... Tôi cảm thấy như từ bỏ Entity Framework vào thời điểm này. Dựa trên kinh nghiệm của tôi cho đến nay và một số vấn đề khác được đăng ở đây, tôi cảm thấy như tôi sẽ dành nhiều thời gian theo đuổi sự khác biệt của Entity Framework hơn là viết mã hữu ích.

CẬP NHẬT: Tôi đã tìm thấy giải pháp. Nhà thiết kế không hiển thị lỗi. Bạn phải tìm trong XML nguyên gốc (tệp edmx) để xem lỗi. Xem tại đây: ADO.NET Entity Framework: Update Wizard will not add tables

+0

Chỉ cần nhận xét về "'MyDatabaseEntites' xung đột với tên thuộc tính hiện có trong Cài đặt ứng dụng. Vui lòng chọn một tên khác": Dường như VS nhìn vào TẤT CẢ các tệp .config cho toàn bộ giải pháp sau tên, không chỉ là tệp thuộc về dự án mà Mô hình Dữ liệu đang được thêm vào. Vì vậy, bạn phải loại bỏ các thiết lập từ các tập tin ALL .config trong giải pháp. –

+0

có thể trùng lặp của [ADO.NET Entity Framework: Trình hướng dẫn cập nhật sẽ không thêm bảng] (http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables) – rcdmk

+0

Xóa tất cả chuỗi kết nối hiện có khỏi tệp cấu hình web và tạo ứng dụng. Bây giờ bạn có thể sử dụng các tên thuộc tính hiện có. –

Trả lời

1

Tôi không biết câu trả lời cụ thể cho vấn đề của bạn, nhưng tôi nghĩ tôi có thể đề xuất một cách tiếp cận sẽ làm rõ xung đột này.

Tôi thường chia công việc EF của mình thành một thư viện riêng biệt. Nếu tôi đang làm việc trên Cyberdyne.Terminator, tôi tạo một thư viện lớp EF có tên Cyberdyne.Terminator.Data. Bằng cách đó, nếu bạn muốn thổi đi mô hình và bắt đầu lại, mọi thứ đều tách biệt với các tệp phụ thuộc của bạn và đặc biệt là web.config của bạn.

Không ai trong số này có khả năng sửa các bảng bị thiếu, có thể. Một điều tôi đã thấy nơi điều này xảy ra là nếu tôi thêm một bảng, và sau đó xóa nó. Nó sẽ không xuất hiện lại trong hộp thoại "Thêm bảng" (và bạn phải đổi tên nó để hiển thị nó). Nhưng tôi nghĩ rằng nó đã được sửa trong EF 4.0. Dunno. Nếu sự cố vẫn tiếp diễn, bạn có thể thử đổi tên bảng, thêm lại, sau đó đổi tên lại nếu nó xuất hiện.

EF là một nỗi đau trong ass để đảm bảo. Điều duy nhất tôi có thể nói với bạn là tôi thường phải trải qua những cơn đau đầu này, tìm hiểu vấn đề và không bao giờ bị họ làm phiền nữa. Nếu bạn không thể chịu được EF, bạn cũng có thể xem NHibernate - tôi cũng có ấn tượng mạnh mẽ về điều đó.

+1

Cảm ơn bạn đã phản hồi Chris. Đó là một gợi ý tốt trên thư viện riêng. Tôi đã tìm thấy giải pháp cho vấn đề của mình ở đây: http://stackoverflow.com/questions/543971/ado-net-entity-framework-update-wizard-will-not-add-tables Tôi nên tìm kiếm thêm một chút trước khi đăng . – David

+0

Chà ... thật điên rồ. Đó thực sự phải là một thông điệp bật lên thay vì được chôn trong XML. –

15

Lỗi là do chuỗi kết nối còn sót lại trong cài đặt trong tập tin "App.Config" (xem giải pháp thám hiểm) và đó là trong phần này: "connectionStrings" (bao quanh bởi dấu ngoặc nhọn)

Chỉ cần xóa nó khỏi đó.

+1

Tôi đã xóa chuỗi kết nối của mình nhưng vẫn nhận được thông báo lỗi. Đã phải khởi động lại VS – user65439

+0

Tôi nhận được vấn đề này trong VS15 tuy nhiên không có connectionstring trong web.config của tôi và tôi không có app.config. – xiimoss

3
  1. Khởi động lại IIS nếu bạn phát triển ứng dụng web.
  2. Khởi động lại Visual Studio sau khi xóa EntityDataModel kết nối Chuỗi Line từ web.config hoặc App.config
  3. Add New Entity Data Model và đổi tên nó giống như tên tuổi,
-2

im rất xin lỗi vì tiếng anh của tôi nhưng giải pháp đơn giản. bạn phải xóa các ado.net sau đó, đi đến app.conf và xóa các chuỗi kết nối <>, DEBUG dự án của bạn và cuối cùng là thêm cơ sở dữ liệu mới thông qua ado.net

TO ADD ADO.NET 
RIGHT CLICK ON YOUR PROJECT NAME, THEN, ADD NEW ITEM, DATA AND SEARCH ADO.NET... 

I hope help you, have good day! 
angelsantacruzm 
0

Kiểm tra kết nối của bạn chuỗi và tiếp tục cuộn sang phải. Thông thường, khi điều này xảy ra với tôi, Visual Studio đã nối thêm một chuỗi kết nối khác. Tôi đã làm điều này một vài lần, và tự hỏi nơi cấu hình ứng dụng của tôi là (không, không có cấu hình ứng dụng, chỉ cấu hình web trong mvc), vì vậy hộp thoại hơi khó hiểu. Chắc chắn, rất có thể là chuỗi kết nối đang ẩn đằng sau cái khác!

0

Chỉ cần nhấn

Ctrl+F

phím và trong danh sách thả xuống chọn 'EntireSolution/CurrentProject', sau đó nhấn Enter. nơi bao giờ tên này tạo ra nó sẽ cho bạn thấy. Tôi nhận được vào web.config tệp. do đó, xóa tạo ra đường kết nối hoàn chỉnh từ đó. và thêm lại. Sau đó, hy vọng bạn có thể không nhận được tin nhắn này một lần nữa.Cảm ơn bạn ..

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