سؤال

وأنا لا أعرف كيفية حفظ الكائن مع جملة WHERE. أنا في حاجة إليها لمنع توفير الكائن مع مجموعة من التواريخ المتداخلة على الآخرين.

public class TaskEvent
{
    public DateTime StartDate {get;set;}
    public DateTime EndDate {get;set;}
}

وأريد أن تحقق overlaping في المعايير في عملية إنقاذ لكني لا أعرف كيف.

وأي أفكار؟

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

المحلول

ويمكنك استخدام HQL للاستعلامات التحديث المخصص

session.CreateQuery("UPDATE TaskEvent SET ... WHERE ID = :ID and ...")
.SetInt32("ID", ID)
//.SetDateTime("", )
//.SetDateTime("", )
.ExecuteUpdate();

وأو القيام به في أكثر لطفا NHibernate من الطريق ... جلب TaskEvents المطلوبة (حيث شرط)، وتحديث ممتلكاتهم، وتنفيذ المعاملة.

نصائح أخرى

وتحتاج إلى معرفة في التعليمات البرمجية التي تعترض تحتاج إلى إنقاذ، ثم حفظ تلك. هذا هو منطق الأعمال، وينبغي ألا تكون دفعت إلى عمليات المثابرة. IMO، حتى لو NH يمكن أن تدعم ذلك.

ونهج واحد سيكون لretermine التي تعترض TaskEvent كنت لا تريد حفظ في رمز وطردهم من ISession بحيث لن يستمر.

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