2012-02-08 32 views
7

Tôi vừa mới tham gia Khuôn khổ thực thể lần đầu tiên vượt ra ngoài các ví dụ đơn giản.LINQ-to-Entities, Tên cột mơ hồ có liên kết giữa hai chế độ xem có cùng tên cột

Tôi đang sử dụng phương pháp tiếp cận kiểu đầu tiên và đang truy vấn nguồn dữ liệu có LINQ-to-Entities.

Tôi đã tạo một mô hình tổ chức mà tôi đang trưng bày dưới dạng dịch vụ OData dựa vào cơ sở dữ liệu mà tôi không kiểm soát lược đồ. Trong mô hình của tôi, tôi có hai thực thể dựa trên hai khung nhìn trong cơ sở dữ liệu này. Tôi đã tạo một liên kết giữa hai thực thể. Cả hai chế độ xem đều có một cột có cùng tên.

Tôi nhận được lỗi:

Ambiguous column name 'columnname'. Could not use view or function 'viewname' because of binding errors.

Nếu tôi đang viết câu lệnh SQL bản thân mình, tôi muốn đủ điều kiện một trong những tên cột với một bí danh để ngăn chặn vấn đề này. EF dường như không làm điều đó. Làm cách nào để khắc phục sự cố này, thiếu thay đổi chế độ xem? (mà tôi không thể làm) Tôi nghĩ rằng điều này không có gì để làm với các thực thể được ánh xạ tới quan điểm, thay vì được ánh xạ tới các bảng thực tế.

+2

Đăng một số mã. – cadrell0

+0

Vui lòng làm rõ nếu bạn đang sử dụng mẫu hoặc mã thiết kế đầu tiên. Nếu bạn đang sử dụng nhà thiết kế, điều này sẽ dễ dàng tự giải quyết bằng cách kéo cả hai chế độ xem lên bề mặt thiết kế và thêm quan hệ. Trong mã đầu tiên nó sẽ đòi hỏi một số công việc nhiều hơn nữa. Ngoài ra, bạn đang truy vấn thông qua SQL thực thể hay bạn đang sử dụng LINQ to Entities? – jessehouwing

+0

@ jessehouwing: Tôi chưa có cơ hội thu thập mã cho điều này. Tôi hy vọng một người nào đó có thể vấp ngã trên nó và nó tạo ra một "Oh, tôi đã có vấn đề đó trước khi" phản ứng. Tôi vừa thêm một số thông tin bổ sung cho câu hỏi. Tôi đang sử dụng phương pháp tiếp cận mô hình đầu tiên, và (như được chỉ định trong tiêu đề) Tôi đang sử dụng LINQ to Entities. – dotnetengineer

Trả lời

1

Giả sử bạn có thể thay đổi mô hình bạn đã thử đi vào mô hình và chỉ cần thay đổi một trong các tên cột? Tôi vẫn có thể thấy nó có thể có vấn đề như thế nào nếu hai khung nhìn đang kéo trở lại cùng một cột từ cùng một bảng. Tôi có thể nói rằng khi làm việc trực tiếp với một mô hình được ánh xạ tới các bảng, có các cột được đặt tên giống hệt nhau không phải là một vấn đề. Ngay cả khi có nhiều liên kết đến cùng một bảng được xử lý chính xác, các Thuộc tính Điều hướng sẽ tự động được cung cấp các tên duy nhất. Tùy thuộc vào phiên bản EF bạn đã sử dụng, bạn có thể tìm hiểu tệp cs hoặc theo mô hình hoặc trong tệp mẫu t4 và xem điều gì đang diễn ra. Sau đó, bạn luôn có thể tạo một lớp học một phần để uốn cong nó theo ý muốn của bạn.

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