Tôi có một số cơ sở dữ liệu, lược đồ của chúng giống nhau. Khi tôi sử dụng cơ sở dữ liệu đầu tiên, chuỗi kết nối được chỉ định khi tôi tạo tệp edmx. Tôi muốn biết, có cách nào để thay đổi chuỗi kết nối không? Đây là, vì vậy tôi có thể chọn cơ sở dữ liệu để hoạt động. Thx trước!Có cách nào để thay đổi chuỗi kết nối trong cơ sở dữ liệu trước không?
Trả lời
Thay đổi chuỗi kết nối trong tệp web.config.
<connectionStrings>
<add name="SandBoxEntities" connectionString="metadata=r... />
</connectionStrings>
Tôi viết tắt chuỗi kết nối thực tế vì nó không quan trọng - chỉ muốn cung cấp cho bạn ý tưởng về những gì cần tìm trong tệp web.config.
Bạn cũng có thể thay đổi chuỗi kết nối theo cách lập trình. Hãy xem Example 16.2. Programmatically modifying an EntityConnectionString.
Chúng tôi không lưu trữ chuỗi kết nối trong web.configs của chúng tôi, vì vậy giải pháp được chấp nhận sẽ không hoạt động đối với chúng tôi. Nếu bạn chỉ đơn giản là cố gắng để cung cấp các chuỗi kết nối thông qua các cơ sở DbContext constructor, bạn sẽ nhận được ngoại lệ sau đây:
Mã được tạo ra bằng cách sử dụng các mẫu T4 cho cơ sở dữ liệu phát triển đầu tiên và mẫu đầu tiên có thể không hoạt động chính xác nếu được sử dụng trong Bộ luật Chế độ đầu tiên. Để tiếp tục sử dụng Database First hoặc Model First, hãy đảm bảo rằng chuỗi kết nối Entity Framework được chỉ định trong tệp cấu hình của ứng dụng thực hiện. Để sử dụng các lớp này, được tạo ra từ Database First hoặc Model First, với Code First thêm bất kỳ cấu hình bổ sung nào bằng cách sử dụng các thuộc tính hoặc API DbModelBuilder và sau đó loại bỏ mã mà ném ngoại lệ này.
Để giải quyết điều này, tạo một lớp học phần của ngữ cảnh của bạn như sau và định dạng chuỗi kết nối của bạn với các siêu dữ liệu EF bổ sung (nơi MyContext là bối cảnh tên model của bạn (ví dụ như tên mô hình của bạn là MyModel.edmx, hơn các MyContext
trong mã dưới đây được thay thế bằng MyModel
với cả ba phần mở rộng .csdl, .ssdl, .msl sử dụng)):
public partial class MyContext
{
public MyContext(string connStr)
: base(string.Format(@"metadata=res://*/MyContext.csdl|res://*/MyContext.ssdl|res://*/MyContext.msl;provider=System.Data.SqlClient;provider connection string='{0}'", connStr))
{
}
}
Để thực hiện công việc này cho tôi, tôi cần thay đổi " thành một trích dẫn duy nhất như được mô tả trong câu trả lời này: http://stackoverflow.com/a/7004173/994464 – Brenton
Đơn giản và đơn giản. –
bạn có thể xác định nhiều chuỗi kết nối trong web.config và sau đó sử dụng chúng trong mã của bạn có lẽ công việc của bạn. ví dụ: `
<connectionStrings>
<add name="conStr1" connectionString="metadata=r... />
</connectionStrings>`
<connectionStrings>
<add name="conStr2" connectionString="metadata=r... />
</connectionStrings>`
và vân vân
và bối cảnh lớp constructor của bạn có được tên chuỗi kết nối như tham số:
public MyContext(string connStr)
: base(connStr) { }
Ok. bây giờ bạn có thể sử dụng trong mã của bạn như sau:
using (var db = new MyContext("name=conStr1"))
{
//your code here
}
và sau đó
using (var db = new MyContext("name=conStr2"))
{
//your code here
}
- 1. CakePHP Cách thay đổi kết nối cơ sở dữ liệu
- 2. Cách lấy chuỗi kết nối từ cơ sở dữ liệu
- 3. Java, cách thay đổi cơ sở dữ liệu hiện tại sang cơ sở dữ liệu khác?
- 4. Thông tin chuỗi kết nối cơ sở dữ liệu
- 5. Thay đổi Chuỗi kết nối "Dữ liệu Ngoài" của Excel
- 6. Làm cách nào để kết nối với cơ sở dữ liệu hiện có trong ASP.NET MVC?
- 7. Cơ sở dữ liệu và kết nối
- 8. Không thể kết nối với cơ sở dữ liệu .mdf
- 9. Cách tốt nhất để bảo mật chuỗi kết nối cơ sở dữ liệu là gì?
- 10. Thay đổi cơ sở dữ liệu ELMAH trong mã
- 11. Kết nối cơ sở dữ liệu không đồng nhất
- 12. kết nối có một cơ sở dữ liệu từ xa
- 13. Kết nối cơ sở dữ liệu CodeIgniter không được đóng
- 14. kết nối cơ sở dữ liệu oracle trong web.config asp.net
- 15. Cách lấy cơ sở dữ liệu Mongo được chỉ định trong chuỗi kết nối trong C#
- 16. cách kết nối F # với cơ sở dữ liệu MySQL?
- 17. kết nối cơ sở dữ liệu sqlite/câu hỏi khóa
- 18. Tên cơ sở dữ liệu sau gạch dưới trong chuỗi kết nối đang bị bỏ qua
- 19. Laravel - thay đổi kết nối cơ sở dữ liệu mặc định trên toàn cầu
- 20. Mở lại kết nối cơ sở dữ liệu trong Java
- 21. Điều kiện kết nối với cơ sở dữ liệu
- 22. Hồ bơi kết nối cơ sở dữ liệu JBoss
- 23. Làm cách nào để thay đổi chủ sở hữu của cơ sở dữ liệu SQL Server?
- 24. Nhiều kết nối cơ sở dữ liệu trong Rails
- 25. Làm cách nào để đếm số lượng kết nối mở trong cơ sở dữ liệu sqlite?
- 26. Cách tạo nhiều kết nối cơ sở dữ liệu cho các cơ sở dữ liệu khác nhau trong java
- 27. Làm cách nào để kết nối với cơ sở dữ liệu trong IronWorker bằng ActiveRecord?
- 28. Định dạng chuỗi URL để kết nối với cơ sở dữ liệu Oracle với JDBC
- 29. Ưu tiên kết nối cơ sở dữ liệu PHP/MySQL?
- 30. Giữ mở một kết nối cơ sở dữ liệu MongoDB
tôi biết làm thế nào để thiết lập chuỗi kết nối trong web.config, những gì tôi muốn biết là làm thế nào để thay đổi nó trong thời gian chạy, đây là, vì vậy tôi có thể chọn cơ sở dữ liệu để sử dụng. Chuỗi kết nối đã được thiết lập khi tôi tạo tệp edmx, có cách nào để thay đổi nó khi chạy không? – James
OK - Tôi đã chỉnh sửa câu trả lời của mình và cung cấp cho bạn liên kết cho bạn thấy chính xác cách thực hiện điều đó. –
Câu hỏi và câu trả lời này đặt toàn bộ nội dung vào một nutshell thuận tiện: http://stackoverflow.com/questions/14440698/setup-entity-framework-for-dynamic-connection-string. –