Dataview içerisinde System.Guid tipindeki herhangi bir kolona filtre uygulamak istediğinizde ilk aklınıza gelen aşağıdaki gibi bir kullanım olacaktır.
DataView dv = new DataView(); dv.RowFilter = "TypeId in ('<guid>', '<guid>', ...)";
Yukarıdaki gibi bir kullanım ilk bakışta normal gibi gözüksede çalışma zamanında problem oluşturacak yada filtre büyüdükçe performans problemleri çıkaracaktır. Hatta uygulama çalışma zamanında “Cannot perform ‘=’ operation on System.Guid and System.String.” hatası verecektir.
Yukarıdaki örnekte Guid’leri filtreye string olarak dahil etmek yerine Convert(expression, type) metodunu kullandığımızda bu problemi önlemiş oluruz.
dv.RowFilter = "TypeId in (Convert('<guid>', 'System.Guid'), Convert('<guid>', 'System.Guid'))";
Örnek kullanım :
dv.RowFilter = "CustomerID IN (CONVERT('{7F901912-DD67-47B9-A5B3-B702B9F84680}','System.Guid'), CONVERT('{85823FC5-1F2E-4034-B1CB-6DEE954AC4D4}','System.Guid')";
Kaynak ;
Bir cevap yazın
Yorum yapabilmek için giriş yapmalısınız.