session.BeginTransaction () وtransaction.Commit ()
-
06-07-2019 - |
سؤال
وأنا جديدة على 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 يقول عن ذلك.
وصاحب العروض التعريف السبات والتنبيه إذا كنت تستخدم الاستفسارات يست في نطاق المعاملة.