سؤال

أرغب في كتابة مستكشف Ravendb المستند إلى سطح المكتب البسيط الخاص بي ، على غرار واجهة المستخدم على الويب. هذا لتعلم الغراب ، في الغالب.

لذا فإن مهمتي الأولى هي قراءة جميع المستندات من DB ، ولا يهم التطبيق الذي ينتمون إليه. أرغب في تحقيق ذلك باستخدام واجهة برمجة تطبيقات العميل ، لكن يبدو أن كلا من Session.query و Session.LuceneQuery يتطلبون تحديد الفئة.

ما هي واجهة برمجة التطبيقات التي يجب أن أستخدمها لهذه المهمة؟

هل كانت مفيدة؟

المحلول

يتطلب واجهة برمجة تطبيقات العميل نوعًا لأنه مصمم للعمل مع CLR Poco وبالتالي يتعامل مع التحويل (من JSON) لك.

ستحتاج إلى العمل مباشرة مع JSON في قضيتك لأنك لا تعرف النوع. هذا ما يفعله واجهة المستخدم على الويب. أوصي بالبحث من خلال رمز Java-Script لمعرفة كيف يتم ذلك.

كما يوجد دائمًا فهرس افتراضي يسمى "Raven/DocumentSbyentityName" الذي يمكنك الاستعلام عنه. هذا يفهرس "NAVEN-ENTITY-NAME" (المقابل لنوع CLR) ، الذي يتم تخزينه في بيانات تعريف المستندات. هذا ما يستخدمه Raven للسماح له بتحويل JSON إلى نوع CLR. نرى المستندات لمزيد من المعلومات

نصائح أخرى

ستقوم أدناه باستخراج جميع مستندات Ravendb في JSON:

var docStore = new DocumentStore { Url = "http://localhost:8080" };
using (docStore.Initialize())
{
    var docs = docStore
        .DatabaseCommands
        .Query("Raven/DocumentsByEntityName", new IndexQuery());
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top