2012-11-12 26 views
5

Tôi đang viết một ứng dụng sử dụng Entity Framework và ASP.NET MVC, vì vậy tôi đã quyết định tách DAL khỏi Ứng dụng Web MVC. Và thực sự tất cả mọi thứ tốt ngoại trừ vấn đề tiếp theo (nếu đó là vấn đề): Tôi đã phải sao chép chuỗi kết nối thực thể từ app.config của dự án DAL để Web.config của ứng dụng Web. Và thực sự nó trông chính xác: DAL không nên biết về chuỗi kết nối với dữ liệu, đó là nhiệm vụ của ứng dụng chính.app.config trong DAL và web.config trong WebApplication

Nhưng tôi thực sự không thích, rằng tôi phải giữ chuỗi kết nối thực thể trong app.config của DAL, vì nó cần cập nhật EntityModel của tôi (* .edmx). Có một số thực hành tốt nhất để tham chiếu đến chuỗi kết nối của ứng dụng web? Hay tôi chỉ để nó như bây giờ?

+0

Trong trường hợp sử dụng một cái gì đó như EF, không phải là EF DAL của bạn? Bạn có bao gồm DAL này trong DAL hay của riêng bạn? –

+1

Vâng, phải, tôi đang gói EF trong dự án DAL của tôi – DanTheMan

Trả lời

6

Vì vậy, chỉ cần giải thích về những gì đang xảy ra ở đây. Khi bạn đang phát triển ứng dụng của mình, dự án DAL tự nhiên là dự án riêng của nó. Khi chỉnh sửa dự án DAL, Visual Studio sẽ sử dụng các giá trị trong tệp cấu hình dự án. Vì vậy, tại sao chuỗi kết nối ở trong tệp app.config đó.

Bây giờ, khi bạn xuất bản toàn bộ giải pháp của mình lên máy chủ web, ứng dụng web là ứng dụng thực đang chạy. Điều này có một tham chiếu đến dll DAL đã được tuân thủ trong quá trình xây dựng. Với điều này, dal DAL sẽ nhận được tất cả các giá trị cấu hình của nó từ web.config vì đây là tệp cấu hình cho assembly chính.

Để trả lời câu hỏi của bạn, tốt nhất nên giữ chúng trong cả app.config và web.config không có lý do nào khác ngoài việc bạn không phải 'tạo kết nối mới' mỗi khi bạn cần cập nhật mô hình của mình. Dự án DAL, theo như tôi biết, sẽ không bao giờ nhìn vào một tệp cấu hình dự án khác trong khi trong Visual Studio. Tuy nhiên, có chuỗi kết nối trong cả app.config và web.conig sẽ không ảnh hưởng đến triển khai của bạn. Cài đặt web.config sẽ luôn được sử dụng.

+1

Tommy, cảm ơn câu trả lời chi tiết. Bây giờ rõ ràng với tôi rằng không có gì phải lo lắng về nó – DanTheMan

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