2009-06-08 25 views

Trả lời

8

Khi tạo mới một DataContext, một trong các quá tải mất một chuỗi kết nối. Do đó, tôi sẽ có trình chuyển đổi trình biên dịch như sau:

#if Debug 
string connectionString = .... 
#else 
string connectionString = ... 
#endif 

DbDataContext db = new DbDataContext(connectionString); 
+0

Tôi đồng ý với nhận xét này, mặc dù tôi sẽ di chuyển các chuỗi kết nối hoàn toàn ra khỏi mã và vào ứng dụng/web.config của bạn hoặc một nguồn cấu hình tập trung khác. – Serapth

+0

Bạn vẫn có thể. Bạn có thể có hai phần trong tệp cấu hình của mình và khi bạn chỉ định chuỗi kết nối trong mã, bạn lấy đúng cơ sở cho dù bạn đang gỡ lỗi hay không. – BFree

2
using (MyDataContext dc = new MyDataContext(connectionString)) 
{ 
    //do a unit of work. 
} 
7

Sử dụng chuỗi kết nối trong cấu hình web/ứng dụng. Có nhiều cấu hình cho dev/test/prod. Mỗi cần có chuỗi kết nối thích hợp. Chuyển cấu hình cho từng môi trường.

+0

Tôi chưa bao giờ thích cách tiếp cận này, có vẻ như nó để lại rất nhiều chỗ cho lỗi. –

+0

Tôi đã thiết lập với DEV làm mặc định. Điều đó xảy ra trên máy cục bộ của tôi không khả dụng từ thử nghiệm hoặc sản phẩm. Nếu ấn phẩm của ứng dụng không chuyển đổi cấu hình, ứng dụng sẽ không thành công và sớm. – tvanfosson

+0

+1 đây là câu trả lời đúng. Bạn nên đề cập rằng bạn có thể sử dụng msbuild để thay thế phần web.config để bạn có thể nhận được chuỗi kết nối DEV của bạn trên bản dựng gỡ lỗi, nhưng chuỗi PROD của bạn trên bản phát hành xây dựng –