Tôi nên chỉnh sửa chuỗi kết nối Entity Framework như thế nào?


115

Gần đây tôi đã phải chỉnh sửa tệp app.config để thay đổi chuỗi kết nối cho mô hình dữ liệu Entity Framework ( .edmxtệp). Nhưng tôi muốn biết: Có cách nào để chỉnh sửa chuỗi kết nối EF bằng trình thiết kế không?

Chuỗi kết nối ban đầu được tạo tự động bởi trình hướng dẫn Mô hình dữ liệu thực thể. Chuỗi kết nối sau đó không thể thay đổi - nó vẫn bị vô hiệu hóa trong cửa sổ thuộc tính của trình thiết kế .edmx. Tôi muốn tránh chỉnh sửa XML bằng tay nếu tôi có thể (trong app.config), vì vậy tôi đã tự hỏi liệu có cách nào để quay lại màn hình trình hướng dẫn ban đầu để thực hiện thay đổi chuỗi kết nối và để công cụ chỉnh sửa tệp app.config cho tôi.

Câu trả lời:


190

Nếu bạn xóa chuỗi kết nối khỏi app.configtệp, chạy lại trình hướng dẫn Mô hình Dữ liệu thực thể sẽ hướng dẫn bạn xây dựng kết nối mới.


17
Thông minh. Đây chính xác là câu trả lời tôi đang tìm kiếm. Để an toàn, tôi đã nhận xét chuỗi hiện có (thay vì xóa nó), lưu các thay đổi của app.config, nhấp chuột phải vào trình thiết kế và chọn Cập nhật mô hình từ cơ sở dữ liệu. Trình hướng dẫn sau đó cho phép tôi đưa thông tin nhạy cảm (uid & pwd) vào chuỗi kết nối. Cảm ơn!
Nhà phát

5
Nếu bạn đang thực hiện mô hình trước tiên, sau đó nhấp chuột phải vào nhà thiết kế và nhấp vào 'Tạo cơ sở dữ liệu từ mô hình'
Carl Onager

2
Điều này cũng làm việc với tôi, ngoại trừ tôi phải cập nhật tệp App.config, sau đó khởi động lại VS.NET 2012. Nó không phát hiện ra rằng tệp App.config đã thay đổi.
Garry English

2
Tôi đã phải gọi lưu một cách rõ ràng vào tệp app.config để người thiết kế nhận ra chuỗi kết nối đã bị xóa.
Rossco

1
Một cách khác để khởi động lại VS là 1. nhận xét chuỗi kết nối trong app.config 2. xây dựng lại dự án có chứa .edmx 3. nhấp chuột phải vào bề mặt thiết kế .edmx và Cập nhật mô hình từ cơ sở dữ liệu ... sẽ mang lại lên trình hướng dẫn Chuỗi kết nối.
RIanGillis

18

Không, bạn không thể chỉnh sửa chuỗi kết nối trong trình thiết kế. Chuỗi kết nối không phải là một phần của tệp EDMX, nó chỉ là giá trị được tham chiếu từ tệp cấu hình và có lẽ vì nó chỉ đọc trong cửa sổ thuộc tính.

Sửa đổi tệp cấu hình là nhiệm vụ phổ biến vì đôi khi bạn muốn thay đổi mà không cần xây dựng lại ứng dụng. Đó là lý do tại sao các tập tin cấu hình tồn tại.


+1 để nhắc nhở rằng: nếu họ đặt nó trong tệp cấu hình, điều đó có nghĩa là họ muốn bạn có thể thay đổi nó. Tôi chủ yếu quan tâm đến thực tế là những thay đổi của tôi có thể bị quá tải
tobiak777

Bạn nên đi và thay đổi chuỗi kết nối trong cấu hình ứng dụng của dự án edmx thuộc về. Không phải cấu hình của ứng dụng cấp cao nhất (được sử dụng khi chạy). o_0
akava

9

Bạn thường xác định chuỗi kết nối của mình trong Web.config. Sau khi tạo edmx, chuỗi kết nối sẽ được lưu trữ trong App.Config. Nếu bạn muốn thay đổi chuỗi kết nối, hãy truy cập app.config và xóa tất cả các chuỗi kết nối. Bây giờ hãy vào edmx, nhấp chuột phải vào bề mặt thiết kế, chọn Cập nhật mô hình từ cơ sở dữ liệu , chọn chuỗi kết nối từ danh sách thả xuống, Nhấp tiếp theo , Thêm hoặc Làm mới (chọn những gì bạn muốn) và kết thúc.

Trong cửa sổ đầu ra, nó sẽ hiển thị một cái gì đó như thế này,

Tệp mô hình đã tạo: UpostDataModel.edmx. Đang tải siêu dữ liệu từ cơ sở dữ liệu mất 00: 00: 00.4258157. Tạo mô hình mất 00: 00: 01.5623765. Đã thêm chuỗi kết nối vào tệp App.Config.


Tôi đang gặp vấn đề tương tự nhưng khi tôi nhận xét chuỗi kết nối, cập nhật mô hình, chọn chuỗi kết nối mới, lớp context.cs của tôi trong mô hình sẽ bị xóa. Không chắc chắn tại sao nó làm điều này trừ khi nó không tạo ra lớp ngữ cảnh?
bitshift

1
Nó không nên làm điều đó. Có thể công cụ tạo khuôn mẫu T4 của bạn bị hỏng.
DanKodi

Tôi đồng ý, nó "không nên". Tuy nhiên, Ive đã mất số lần khi thực hiện nhiều hơn một vài thay đổi không hề nhỏ đối với lược đồ cơ bản, cuối cùng tôi đã đơn giản thổi bay mô hình và tạo một mô hình mới. Có lẽ với EF7 và việc loại bỏ tệp edmx có thể giúp ích cho mọi việc. Dù bằng cách nào, đó cũng là những gì tôi đã làm lần này, chỉ cần làm nổi bật mọi thứ trong mô hình, nhấn xóa và đưa các mục đó trở lại.
bitshift

2

Mở tệp .edmx bất kỳ trình soạn thảo văn bản nào cũng thay đổi Schema = " lược đồ cần thiết của bạn " và cũng mở app.config / web.config , thay đổi id người dùng và mật khẩu từ chuỗi kết nối . Bạn xong việc rồi.


Yeap, điều này đã làm nó.
ggderas

1

Thực hiện theo các bước tiếp theo:

  1. Mở app.config và nhận xét về chuỗi kết nối (lưu tệp)
  2. Mở edmx (đi đến thuộc tính, chuỗi kết nối phải trống), đóng lại tệp edmx
  3. Mở app.config và bỏ ghi chú chuỗi kết nối (lưu tệp)
  4. Mở edmx, đi đến các thuộc tính, bạn sẽ thấy chuỗi kết nối được tăng lên !!
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.