Tôi đang cố gắng tìm ra chiến lược tốt nhất về cách tổ chức DataContexts. DB điển hình chúng tôi làm việc có từ 50 đến 100 bảng thường ở dạng thứ ba bình thường và có nhiều mối quan hệ giữa chúng. Tôi nghĩ chúng tôi có hai tùy chọn:LINQ to SQL nhiều DataContext-s
- Đặt tất cả các bảng trong một ngữ cảnh. Điều này sẽ đảm bảo rằng bất cứ điều gì chúng tôi làm sẽ được cam kết theo đúng thứ tự trong cơ sở dữ liệu. Vấn đề là các nhà thiết kế LINQ sẽ là một mớ hỗn độn với hơn 50 bảng và tôi lo lắng hiệu suất có thể bị ảnh hưởng.
- Tạo một số ngữ cảnh dữ liệu dựa trên nhóm bảng hợp lý. Vấn đề là sẽ có những nơi mà một bên của một mối quan hệ sẽ được trong một bối cảnh và một bên trong một bối cảnh khác. Chúng tôi sẽ phải tự tay xử lý cả hai ngữ cảnh theo đúng thứ tự.
Có thực tiễn nào được đề nghị để xử lý việc này không?
Chi tiết khác:
Tôi muốn tạo các thực thể và đơn vị công việc của riêng mình trên LINQ to SQL. Các thực thể sẽ được định nghĩa trong một tệp mô hình xml nơi ánh xạ tới các thực thể LINQ cũng sẽ được chỉ định. Một công cụ tùy chỉnh sẽ tạo các thực thể của tôi (POCO) dựa trên mô hình. Mã máy khách sẽ chỉ tương tác với các thực thể của tôi và đơn vị công việc của tôi; không bao giờ trực tiếp với các thực thể DataContext hoặc LINQ. Tuy nhiên tôi không muốn sao chép những gì LINQ to SQL cung cấp ra khỏi hộp vì vậy tôi muốn sử dụng LINQ DataContext cơ bản. Điều này có nghĩa là tôi không thể có hai đơn đặt hàng trong các ngữ cảnh dữ liệu khác nhau, vì sẽ không thể lập bản đồ cho Lệnh POCO của tôi với cả hai lệnh đó.
Mặc dù vậy, nhưng không thể sử dụng Lệnh từ ngữ cảnh 2 trong Ngữ cảnh .... bạn sẽ kết thúc với hai thực thể đơn hàng khác nhau – Albert
Nếu công việc được phân tách thành các đơn vị, bạn sẽ không bao giờ cố gắng sử dụng một đối tượng từ ngữ cảnh 2 trong ngữ cảnh3. –
Tôi thực sự muốn triển khai các POCO và Đơn vị công việc trên các thực thể LINQ để mã máy khách sẽ làm việc với một UnitOfWork sẽ chỉ có một loại lệnh. Trong giải pháp được đề xuất của bạn, tôi sẽ không biết ngữ cảnh nào để sử dụng cho các đơn đặt hàng – Albert