سؤال

وأنا جديدة على Nhibernate، لذلك الاستعلام بلدي قد تبدو تافهة لك.

ونحن تضمين عموما البيانات رمز عملية داخل

  using (var session = sessionFactory.OpenSession())
  {
    using (var transaction = session.BeginTransaction())
    {
       ...Code for CRUD operations
       transaction.Commit();
    }
  }

ولأننا عموما BeginTransaction / الالتزام / الاستعادة لتوفير / تحديث / حذف البيانات،

وأنا أتساءل عما إذا كان هناك حاجة BeginTransaction() وCommit() حتى لو أنا retriving البيانات باستخدام session.Get<T>(id); أو session.CreateCriteria<T>().List();

يرجى توجيه.

وشكرا لك!

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

المحلول

لا، لا يمكنك أن تفعل استرجاع البيانات دون المعاملات؛ جميع العمليات NH-هي عملية مركزية.

وقراءة هذه المادة من قبل <وأ href = "http://ayende.com/Blog/archive/2008/12/28/nh-prof-alerts-use-of-implicit-transactions-is-discouraged.aspx" يختلط = "نوفولو noreferrer"> Ayende Rahien .

نصائح أخرى

ويجب عليك دائما استخدام المعاملات في الاستعلامات. ليس فقط لأداء ولكن أيضا لأسباب التوافق، و <لأ href = "http://ayende.com/Blog/archive/2008/12/28/nh-prof-alerts-use-of-implicit-transactions-is -discouraged.aspx "يختلط =" نوفولو noreferrer "> Ayende يقول عن ذلك.

وصاحب العروض التعريف السبات والتنبيه إذا كنت تستخدم الاستفسارات يست في نطاق المعاملة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top