QueryOver Extensions

جهت تکمیل مطلب قبل (+)، می‌توان به ازای تمام توابع SQL موجود و همچنین تمام حالت‌های اعمال محدودیت مانند مساوی، بزرگتر، کوچکتر و امثال آن، extension method نوشت. یا اینکه یک متد داشت که بتوان پارامترهای آن را تنظیم کرد. به همین جهت کتابخانه زیر را تهیه کرده‌ام که از آدرس زیر قابل دریافت است:



نحوه استفاده:
ابتدا باید به NH معرفی شود (یکبار در ابتدای کار برنامه):
RegistrExt.RegistrMyQueryOverExts();
سپس استفاده از آن به سادگی زیر خواهد بود:
using QueryOverSqlFuncsExts;

var data = session.QueryOver<Account>()
.Where(x => x.Name.Evaluate(new SqlFunc().CharIndex("a", 1).IsEqualTo(2)))
.List();
مثال‌های بیشتر را در پوشه تست پروژه می‌توانید پیدا کنید.

  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۳:۲۶
    سلام مهندس
    من وقتی طبق چند پست قبلی شما از جوین استفاده میکنم این ارور رو میده
    Invalid column name 'Customer_id'
    در صورتی که من اصلا این فیلد رو ندارم و فقط جدول والد به نام 
    Customers
    است و در جدول
    Order
    نام کلید خارجی
    Customer
    است
  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۴:۰۵
    برای پاسخ دقیق نیاز هست روش مپ کردن شما رو ببینم.
    اگر دستی است احتمالا این نام تعریف شده (به ستون Id به صورت صریح انتساب داده شده)؛ بررسی کنید
    اگر  از روش AutoMap استفاده می‌کنید حدسم این است که یک Convection جایی تعریف کردید که فیلد آی دی رو به این صورت مپ کنه. (من خودم شبیه به این Convection را تهیه کردم.)
  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۵:۰۲
    https://rapidshare.com/files/3718254390/Test1.rar
    ممنون
  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۵:۵۰
    See http://tirania.org/blog/archive/2011/May-16.html
  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۶:۰۷
    در مورد شرکت جدید مونو در همان مطلب مخصوص آن به صورت کامنت لینک شما دیروز اضافه شد
    +
    مثال بالایی شما رو اصلاح کردم از این آدرس قابل دریافت است: (+)
  • #
    ‫۱۳ سال و ۵ ماه قبل، چهارشنبه ۲۸ اردیبهشت ۱۳۹۰، ساعت ۱۸:۱۲
    Thanks!!!
  • #
    ‫۱۳ سال و ۵ ماه قبل، دوشنبه ۲ خرداد ۱۳۹۰، ساعت ۰۰:۰۳
    مبحث جاری در مورد "QueryOver Extensions" الان در trunk پروژه NHibernate قرار گرفته و از نگارش جدید آن در دسترس خواهد بود. البته syntax آن کمی تغییر کرده و مثلا شده x.DateProp.DatePart() و امثال آن، در فضای نام NHibernate.Criterion