2013-12-17 15 views
12

Đây là thực thể khuôn khổ:tải Háo hức với ormlite servicestack

var department = _context.Departments 
       .Include(dep => dep.Employees.Select(emp => emp.ContactTypes)) 
       .SingleOrDefault(d => d.Id == departmentId); 

Ở đây tôi mong đợi một bộ phận để được trả lại chứa tất cả các nhân viên liên quan và tất cả các loại liên hệ cho từng nhân viên.

Đây là ormlite servicestack:

Tôi không có ý tưởng. Khi tôi nhìn vào docu/mẫu: https://github.com/ServiceStack/ServiceStack.OrmLite

Họ viết:

Ngay bây giờ hỗ trợ biểu thức có thể đáp ứng các truy vấn đơn giản nhất với một API mạnh mẽ, đánh máy. Đối với bất kỳ điều gì phức tạp hơn (ví dụ: truy vấn với tham gia bảng), bạn vẫn có thể dễ dàng quay lại các truy vấn SQL thô như được thấy bên dưới.

Tôi đã thấy có một lớp JoinSqlBuilder nhưng tôi không nghĩ rằng nó có thể trả về bộ sưu tập lồng nhau.

Có thể những gì tôi muốn là không thể nhưng có lẽ tôi có thể làm một thỏa hiệp như nhận được tất cả nhân viên cho departmentId. Sau đó, tôi inmemory foreach các nhân viên và lấy tất cả các loại liên lạc cho một employeeId nhất định. Tạo phân cấp và gán danh sách sẽ vẫn là công việc của tôi.

Nhưng tôi hy vọng có giải pháp ngắn hơn.

Điều gì sẽ là tốt khi truy vấn có thể trông giống như trả về một đối tượng (Động?) Với 3 thuộc tính căn hộ: Sở, Nhân viên, ContactTypes và gán thuộc tính thoa cho DTO của tôi.

+1

@Voters Tất cả các bạn nên truy cập: http://servicestack.uservoice.com/forums/176786-feature-requests/suggestions/4459040-enhance-ormlite-with-common-data-usage-patterns và bỏ phiếu ở đó với tối đa 3 phiếu bầu của bạn hơn chúng tôi có thể vượt qua yêu cầu tính năng hàng đầu !!! – Pascal

+0

@Voters Cool một số chàng trai đã bình chọn: p – Pascal

+0

Nếu bạn kiểm tra mã ngay bây giờ họ có Tải tham chiếu và Lưu tham chiếu, tôi không bao giờ sử dụng nó vì tính năng này cho phiên bản 4 – kirie

Trả lời

0

Ok, xin đừng coi đây là một câu trả lời dứt khoát, nhưng chỉ hơn mất của tôi vào tình huống (tôi không sử dụng dịch vụ chồng rất nhiều) tuy nhiên ...

Khi tôi lần đầu tiên bắt đầu sử dụng EF cách đây nhiều năm, tôi đã gặp một tình huống tương tự, nơi mà các tài liệu tham khảo sẽ không tải. Cũng giống như bạn, tôi đã phải đối mặt với khả năng phải tự mình liệt kê các bộ sưu tập riêng lẻ và viết nhiều mã bổ sung cho một hoạt động mà ORM có thể xử lý dễ dàng.

Điều tôi đã làm cuối cùng là sử dụng tính năng tự động ánh xạ, điều này về cơ bản giảm tất cả các vòng lặp đa cấp mà tôi có ở mọi nơi thành một tuyên bố ánh xạ đường đơn. Đã được cấp, tôi vẫn phải thực hiện một tuyên bố ánh xạ cho mỗi thuộc tính được liên kết, nhưng nó đã giảm mã tôi phải viết, và quan trọng hơn là tôi và chạy cho đến khi EF được cải thiện hoặc tôi đã tìm ra cách làm tốt hơn .

Hãy để tôi nhấn mạnh, tôi không đề xuất câu trả lời này, và nó hơi lớn để nhận xét, tôi chỉ đơn giản đề xuất chuyển suy nghĩ của bạn theo một hướng khác, có thể giúp giải pháp tốt hơn .

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