استخدام Dapper مع إجراءات Oracle المخزنة التي تُرجع المؤشرات
سؤال
كيف يمكن للمرء أن يذهب نحو استخدام أنيق مع إجراءات أوراكل المخزنة التي ترجع المؤشرات؟
var p = new DynamicParameters();
p.Add("foo", "bar");
p.Add("baz_cursor", dbType: DbType.? , direction: ParameterDirection.Output);
هنا، DbType هو System.Data.DbType الذي لا يحتوي على عضو المؤشر.لقد حاولت استخدام DbType.Object ولكن ذلك لا يعمل مع كل من OracleClient وOracleDataAcess.
ما هي الطريقة الممكنة لاستخدام OracleType أو OracleDbType بدلاً من ذلك؟
المحلول
سيكون عليك تنفيذ:
public interface IDynamicParameters
{
void AddParameters(IDbCommand command, Identity identity);
}
ثم في AddParameters
رد الاتصال الذي ستلقي به IDbCommand
إلى OracleCommand
وأضف معلمات قاعدة البيانات المحددة.
نصائح أخرى
شكرا على الحل هنا.لقد حققت نفس الشيء باستخدام كود أقل قليلاً باستخدام مصمم ديناميكي بسيط: Genacodicetagpre
أضف هذا الفصل إلى مشروعك
ويجب أن يكون الرمز الخاص بك كما يلي: - Genacodicetagpre
فقط لتوضيح اقتراح Sams ، هذا ما توصلت إليه.لاحظ أن هذا الرمز هش وهو الآن مخصص لشركة Oracle فقط.
تعديل Dapper 1.7
Genacodicetagpreاختبار الرمز Genacodicetagpre