Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhập hàm EF không nhận ra các cột do StoredProc trả về

Sau khi điên tiết lên googling, tôi đã tìm ra câu trả lời: EF4 - Thủ tục được lưu trữ đã chọn không trả về cột nào

EF không thể lấy siêu dữ liệu từ một proc được lưu trữ sử dụng truy vấn động hoặc bảng tạm thời. Giải pháp là tạo thủ công kiểu trả về phức tạp HOẶC đặt

SET FMTONLY OFF

trong định nghĩa proc được lưu trữ của tôi. Nguy hiểm với tùy chọn thứ hai, tất nhiên là proc được lưu trữ sẽ được thực thi khi Visual Studio thực hiện lệnh gọi siêu dữ liệu, vì vậy điều này lý tưởng chỉ được sử dụng nếu thủ tục được lưu trữ không thay đổi bất kỳ điều gì.

CẬP NHẬT:Một giải pháp thay thế là đảm bảo rằng thủ tục được lưu trữ thực sự hoạt động. Một điều khác bạn có thể làm là tạo một thủ tục giả được lưu trữ trả về các cột bạn muốn, liên kết với nó và sau đó thực hiện logic thực tế.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-sql - xác định xem giá trị có phải là số nguyên hay không

  2. Kiểu dữ liệu SYSNAME trong SQL Server là gì?

  3. Làm cách nào để cấp quyền (bảng) quyền trong SQL Server 2008?

  4. Đổi tên bảng trong SQL Server (T-SQL)

  5. Cách kiểm tra cài đặt ANSI_NULLS của phiên trong SQL Server