Tôi đang sử dụng EF4, mã đầu tiên. Như vậy, các lớp mô hình của tôi có kết hợp các thuộc tính công cộng, một số thuộc tính ảo (cho dữ liệu được tải từ các bảng khác) và một số thuộc tính được gắn với các thuộc tính [NotMapped]
để chúng bị bỏ qua bởi EF.nhận truy vấn nguyên gốc Khung thực thể để tôn trọng các thuộc tính
Đôi khi tôi muốn sử dụng truy vấn thô: c.Database.SqlQuery<T>("select ...")
để sử dụng EF làm công cụ lập bản đồ hàng.
Tôi nhận thấy trong Intellitrace rằng các truy vấn này tạo ra nhiều ngoại lệ bị ném và bị bắt đối với "IndexOutOfRange". Sau khi tìm kiếm, các ngoại lệ là tất cả cho các thuộc tính ảo và [NotMapped] trên đối tượng mô hình. Tôi không muốn phải xây dựng một lớp mô hình dữ liệu mới hoặc lớp cha với chỉ các thuộc tính bảng trong đó; là có một số bước cấu hình tôi đã bỏ lỡ để nói cho người lập bản đồ hàng trong runner truy vấn thô để chú ý đến các chú thích tương tự mà phần còn lại của EF sử dụng? Có lẽ họ đã sửa lỗi này trong EF5?
Tôi biết dbSet đã hoạt động; vì nhiều lý do tôi không có dbSet, nơi tôi quan tâm đến việc sử dụng Database.SqlQuery. Vì vậy, nó có vẻ như "không bao giờ" là câu trả lời. – Mikeb
Có, có sự khác biệt lớn giữa hai cuộc gọi đó nhưng tôi không thấy lý do tại sao bạn không nên có 'DbSet'. Bạn có một bối cảnh và bạn biết một loại để gọi 'dbContext.Set() .SqlQuery (....)' nên có thể. –
Đã cố gắng để xem nó có nhanh hơn hay không, và nhớ tại sao tôi không làm điều đó: "Kiểu thực thể (T) không phải là một phần của mô hình cho bối cảnh hiện tại." – Mikeb