8 Kasım 2019 Cuma



Linq to SQL içerisinde "Row not found or changed" yani "Satır bulunamadı veya değiştirildi” hatası alıyorsanız


Bu hatayı aldığınızda aşağıdaki kod parçası ile çözebilirsiniz gibi görünüyor. Fakat..

try { db.SubmitChanges(ConflictMode.ContinueOnConflict); } catch (ChangeConflictException e) { Console.WriteLine("Optimistic concurrency error."); Console.WriteLine(e.Message); foreach (ObjectChangeConflict occ in db.ChangeConflicts) { MetaTable metatable = db.Mapping.GetTable(occ.Object.GetType()); Customer entityInConflict = (Customer)occ.Object; Console.WriteLine("Table name: {0}", metatable.TableName); Console.Write("Customer ID: "); Console.WriteLine(entityInConflict.CustomerID); foreach (MemberChangeConflict mcc in occ.MemberConflicts) { object currVal = mcc.CurrentValue; object origVal = mcc.OriginalValue; object databaseVal = mcc.DatabaseValue; Console.WriteLine("Member: {0}", mcc.Member.Name); Console.WriteLine("current value: {0}", currVal); Console.WriteLine("original value: {0}", origVal); Console.WriteLine("database value: {0}", databaseVal); Console.ReadLine(); } } }

db.SubmitChanges(ConflictMode.FailOnFirstConflict);

---------------------------

Bu linkten detaylara ulaşabilirsiniz: Microsoft Dökümantasyonu

Bazen bu da çözüm olmuyor. Kod hatasız tamamlanıyor fakat veriler database içerisinden update edilmiyor. Nedeni bir tablonun database ve "dbml"(LinqToSql) dosyanızda farklılık göstermesi olabilir. Büyük ihtimal database içerisinde yaptığınız bir değişikliği "dbml"dosyanıza tekrar aktarmadınız ve farklılıklar gösterdi. Yani burada belirtilen bir kayıt satırı değil bir tablonun kolonu değiştirilmiş veya bulunamadı anlamına gelebilir. 

Hatayı gidermek için önce sorun çıkaran objeyi belirlemek gerekiyor. Yukarıdaki kodda "occ.Object" size sorun çıkaran objeyi verecektir.

Henüz yayınlanmamış siteyi gösterme. Host dosyası kullanmadan




Eğer bir web uygulaması veya websitesi yaptıysanız onu yayınlamadan önce önizlemek istersiniz. Lokal ortamda bunu host dosyası ile yapabiliyoruz. Peki ya yeni bir web sitesini yayına almadan yada farklı sunucuya taşımadan önce önizlemek istiyorsak? Yani internet üzerinde de başka kişilere göstermeyi düşünüyorsak. 


Bunu yapmak için güzel bir site gördüm. Bunu paylaşmak istiyorum.



adresinde host dosyanızı sanal ortamda kullanıyor gibi sunucu ip adresi ve yönlendirmede kullanacak domaini kullanabilirsiniz. 



Örneğin A sunucusunda olan bir web sitesinin yeni halini B sunucusunda önizlemek istiyorsak. hosts.cx sitesindeki kutucuklara ip adresi ve IIS te tanımladığımız site adını yazarak online olarak önizleyebiliriz.