NHibernate konusunda çok fazla tecrübem olmadığından bazı durumlarda sıkıntı yaşayabiliyorum. Bunlardan birisinin çözümü de son derece basitmiş ama benim bulmak için canımı çıkarttı. Herhangi bir objeyi veritabanından almak istediğinizde, “eşit olmayan” durumunu kullanmak istiyorsanız; ICriteria‘ya şu şekilde “Not Equal” durumunu ekleyebilirsiniz: .Add(Expression.Not(Expression.Eq(“FieldName”, value))); Yani, kısacası, Expression.Not ve Expression.Eq (equal)’ı birleştirmeniz gerekiyor. Başkalarının vakit kaybetmemesi dileği ile…
Kullanmakta olduğunuz bir class’ın veya class’ın herhangi bir instance’ının (objenin) içerisinde bulunduğu assembly’nin sürümüne erişmek aşağıdaki kadar basit. Peki buna neden ihtiyaç duyabilirsiniz? Mesela kullanmakta olduğunuz bir component’in hangi sürümünü kullandığınıza programmatic olarak erişmeye ihtiyaç duymanız gibi bir durumla karşılaşabilirsiniz. Örnek: public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Response.Write(this.GetType().Assembly.GetName().Version.ToString()); Response.Write(typeof(MyCustomClass).Assembly.GetName().Version.ToString()); } }
Örneğin Array’lerden bildiğiniz üzere bazı objeler üzerinde degisken[0], degisken[1] şeklinde değer alabilmek ve değer atamak mümkündür. Peki kendi yazdığınız bir class içerisinde bunu nasıl yapabilirsiniz? Bunun için C# özel bir keyword içeriyor: this. “this” keyword’unun içinde bulunduğumuz class’ın o anki instance’ına erişmek için kullanıldığını hepimiz biliyoruz fakat aşağıdaki örnekte de görebileceğiniz üzere bu keyword’ün başka bir kullanımı daha var. using...
System.Threading.Thread class’ı üzerinde bulunan method’ların yardımı ile ilgili Thread üzerinde memory slot’ları oluşturup, içlerinde istediğiniz bilgiyi saklayabilirsiniz. Çok basit bir örneğini aşağıda ekliyorum. using System.Threading; public class SlotDataProvider { public static object GetFromSlot(string slotName) { LocalDataStoreSlot slot = GetSlot(slotName); if (slot == null) return null; return Thread.GetData(slot); } private static void SaveToSlot(string slotName, object data) { LocalDataStoreSlot slot = GetSlot(slotName);...