در رابطه با NHibernate رایج است که هر جا حس کردیم NHibernate یا مهارت خودمان در استفاده از آن دچار محدودیت است فوراً دست به کار شده و ضمن دور زدن مکانیزم NHibernate session managment مستقیماً از SQL در برنامهمان استفاده کنیم. مثلاً وقتی که نمیتوانیم از eventهای مرتبط با Save/Update در NHibernate به درستی …
در خانواده MS SQL نسخههای ۲۰۰۰، ۲۰۰۵ و ۲۰۰۸ تعدادی فیلد خاص برای کار با دادههای حجیمی مثل عکس یا متون خیلی طولانی وجود دارد. هر کدام از اینها شرایط خاص خودشان را دارند که در ادامه بررسی خواهند شد. char و varchar: حداکثر ۸۰۰۰ کاراکتر varchar(max): حداکثر ۲ میلیارد کاراکتر – این نوع داده …
Named SQL queries in NHibernate is a way that you can put a native SQL query in a .hbm.xml file and executed it via IQuery and GetNamedQuery. By working with this feature you may encounter some errors and exceptions. Here I have gathered some common problems that I have seen by myself. NHibernate.MappingException : unknown …
تصور کنید تعدادی کوئری SQL دارید که میخواهید Paging را با استفاده از NHibernate در آنها فعال کرده و بنا به دلایلی اجازه بازنویسی آنها با دیگر APIهای NHibernate نداشته و آنها را صرفاً باید از طریق ObjectDataSaource به کنترلهای ASP.NET بخورانید. سه راه برای انجام این کار وجود دارد. راه اول: استفاده از stored …
NHibernate یک ORM است که شما را ترغیب میکند برای دسترسی به دیتابیس از APIهای خاص خودش یعنی HQL، ICriteria و Linq-to-NHibernate استفاده کنید. اما راه را برای آنها که به هر دلیل ترجیح میدهند یا مجبورند از SQL استفاده کنند نبسته است. NHibernate دو راه برای انجام این کار دارد: استفاده از ISession.CreateSQLQuery و …
یکی از ابزارهایی که هم برای خطایابی خیلی استفاده میشود و هم برای پیدا کردن مشکلات سرعت Queryهای دیتابیسی، ابزار SQL Server Profiler است. من هم از این ابزار خیلی استفاده کرده و میکنم. اما مشکل من با این ابزار حجم زیاد log تولیدی آن است. گاهی اوقات برای دیدن یک Query خاص باید چند …
Named SQL query in NHibernate is an easy way to apply paging through native SQL. SetFirstResult and SetMaxResults helps a lot here. But the problem is when query is get a bit complicated or for some other reasons that I don’t know, paging does not works on pages after first page. In this case a …
چند روزی را در حال بررسی سرعت Query بر روی جداول حجیم بودم. Query مورد نظر من یک sum ساده بر روی جدولی به اسم amort بود. این Query به صورت یک function پیاده سازی شده بود. البته آن Query نهایی که من زمان آن را بررسی کرده و نتایجش را در نظر داشتم این …
step 1: create a simple class like this in csharp using Microsoft.SqlServer.Server;using System.Data.SqlClient;using System;using System.Data;using System.Globalization; public class T{[SqlFunction(DataAccess = DataAccessKind.Read)]public static DateTime Jalali2Gregorian(string jalaliDate){DateTime sqlMinDate = Convert.ToDateTime(“1/1/1753”);DateTime res = sqlMinDate;try{jalaliDate = jalaliDate.Trim();int year = Convert.ToInt32(jalaliDate.Substring(6, 4));int month = Convert.ToInt32(jalaliDate.Substring(3, 2));int day = Convert.ToInt32(jalaliDate.Substring(0, 2));PersianCalendar pc = new PersianCalendar();res = pc.ToDateTime(year, month, day, 0, 0, …