برای آن که NHibernate بتواند به طور بهینه از Caching استفاده نماید باید Fetch در Entityها و Queryها به طور مناسبی تعریف شده باشد. Fetch به طور کلی به NHibernate میگوید sql دریافت اطلاعات از دیتابیس را چطور تولید کند. یک select کلی از همه جداول با استفاده از outer joinهای متعدد یا selectهای جداگانه …
یکی از راههای توصیه شده برای افزایش Performance در Queryهای دیتابیس، پرهیز از استفادههای بیمورد از select * from some_table میباشد. راه حل توصیه شده استفاده از projection و برگرداندن صرفاً ستونهای مورد نیاز از دیتابیس است. مثلاً باید از select col1, col2 from some_table استفاده شود. در همین راستا LINQ-to-NHibernate هم پشتیبانی خوبی از …
Some applications are using NHibernate 2.1.2 yet. So they are forced to use old LINQ-to-NHibernate that comes with NHibernate 2.1.2 and can’t benefit new LINQ provider in NH 3. There are two annoying problems with old LINQ-to-NHibernate. The first is inheritance related queries: “is” operator can’t be used. The second problem is not supporting “distinct”. …
اگر میخواهید از یک کوئری LINQ به عنوان خروجی یک متود استفاده کنید دو راه برای آن وجود دارد. یکی آن که خروجی متود را از نوع IEnumerable تعریف کنیم و یکی دیگر آن که خروجی آن را از نوع IQueryable تعریف کنیم. استفاده از IEnumerable به معنی پایین آمدن Performance است. به همین دلیل …
If you are a Castle ActiveRecord user you may currently encountered situations that it is needed to do some specific operation that is possible just via NHibernate or even just need to direct access to NHibernate’s ISession. For example if you want to use LINQ-to-NHibernate or run SQL query with Castle ActiveRecord, there is no …
ASP.NET GridView and other similar controls that support paging needs special methods that return only the requested slice of data and the count of total data. As I’m a lover of NHibernate/Castle ActiveRecord I have gathered paging techniques in NHibernate HQL, LINQ-to-NHibernate and Castle ActiveRecord: NHIbernate HQL: public IList GetData(int page, int pageSize, ref long …
Weeks ago we decided to upgrade to NHibernate 2.1.2to be beneficiary of LINQ-to-NHibernate and other new features of last version of NHibernate. After introducing LINQ technology in .NET 3.0 many people were thinking the lack of a LINQ provider for NHibernate until when Ayende Rahien introduced the existence of LINQ-to-NHibernate. My colleague Masoud and I …
Some days ago I was in a situation that needed to use sub queries in LINQ-to-NHibernate. But as LINQ-to-NHibernate does not support sub queries (because of Criteria does not support it) I asked help from StackOverflow. The best response was that it’s better to use HQL and forget about LINQ-to-NHibernate in the case of subqueries. …
چند روز پیش مطلبی در همین جا نوشتم به عنوان «داستان بیسوادی ما». در آنجا از دست خودم شاکی بودم که چرا به اندازه کافی به روز نیستم و بعضی چیزها را به موقع یاد نمیگیرم. تعدادی از دوستان هم با بنده همدردی کرده و گفته بودند آنها هم از همین مشکل رنج میبرند. حال …