IMO, cách tiếp cận đúng ở đây là không để (theo câu trả lời được chấp nhận) sử dụng tiền tố tham số cụ thể của cơ sở dữ liệu (so @
cho sql-server, :
cho oracle) - nhưng đúng hơn:không sử dụng tiền tố nào cả . Vì vậy, cuối cùng đây là:
il.Emit(OpCodes.Ldstr, prop.Name);
(v.v.)
Đặc biệt, một static
thuộc tính sẽ không tốt vì nó sẽ giới hạn bạn ở một nhà cung cấp cho mỗi AppDomain
.
Dapper đã được cập nhật với thay đổi này. Giờ đây, nó cũng tự động phát hiện BindByName
và đặt nó cho phù hợp (tất cả mà không cần tham chiếu đến OracleCommand
).