//BaseService. cs public class BaseService<T> :IDisposable where T : class { ObjectContext _context; IObjectSet<T> _objectSet; // Data nesnelerimiz üzerinde değişiklikler yapmamızı sağlar //İki kurucu fonksiyonumuz, birinci ile daha nceden belirlediğimiz bir tipte entitycontextimizi belirliyoruz, ikincisinde ise istediğimiz contexti sınıfımızın objectseti olarak set ediyoruz. public BaseService public BaseService //Entity'imizi otomatik tip dnüşümü ile Queryable yapıyoruz public IQueryable<T> AsQueryable //parametre olarak geçtiğimiz lambda koşuluyla uyuşan ilk sonucu alan sorgu public T First //parametre olarak geçtiğimiz lambda koşuluyla uyuşan sonuçları alan sorgu public IEnumerable<T> Find public bool Any //ekleme, silme ve güncelleme işlemleri public void Delete public void Add public void Attach public void Update public void SaveChanges { try catch { // Get All properties from the Exception var properties = ex. GetType . GetProperties ; foreach { //Search Properties of Exception for StateEntries if { //Get the entities var entities = p. GetValue ; foreach } } //Throw the Exception so the upper level know it have a problem. throw; } } //Son fonksiyonumuz diğerlerine nezaran daha spesifik olduğu için sona bıraktım, sorugumuza parametre olarak hem where ifadesi hem de orderby ifadesi geçiyoruz public IEnumerable<T> GetAllByDescending<F>(Expression<Func<T, bool>> query, Expression<Func<T, F>> order, int skip = 0, int take = 0) { // _context. Refresh ; IQueryable<T> tq = _objectSet. AsQueryable ; if tq = _objectSet. Where ; tq = tq. OrderByDescending ; if (take!= 0) return tq; } public IEnumerable<T> SelectAll #region Implementation of IDisposable public void Dispose { if GC. SuppressFinalize ; } #endregion } } //AuthService. cs -> her tablo için byle servisler var ben en kısasını yazdım public class AuthService : BaseService<TBL_AUTH> { private static readonly AuthService _instance = new AuthService ; public static AuthService Instance { get } public TBL_AUTH First public void Update }

: gzden kaçırdığın bir şey olmalı o zaman hocam. çünkü exception uniqe ile ilgili bir hatayı gsteriyor.. biraz bekletip eklediğinde problem yok demişsin, burada tam olarak ne demek istemişsin ya Service.aspx diye bişey yazdım jquery ile inputtan sürekli ona veri gnderiyorum çok sık gnderince hata veriyor. bu şekilde get ediyorum diğer taraftada ekletiyorum veriyi. $ . ready(function { $ . click(function ); });

: public void Add bi dene bakalım bişeyler olacak gibi Mesaj 27 Temmuz 2012 Saat: 13:49'da SinusX tarafından düzenlendi. public void Add şu şekilde yaptım oldu galiba.

: hımm alakasız gibi geliyor ama çok hızlı gnderme yerine bir bekletme kodu yazsan ne olur? ikinci olark get yaptırmadan rastgele verileri kaydetmeyi dener misin çok farklı bi yerde basit bi formdan ardarda 2 veri gnderdim yine patladı

hata zaten veritabanına kayıt ederken değil, ObjectStateManager da aynı key olduğu için veriyor. Arkadaşlarn dediği gibi yeni bir nesne create ederek deneyebilirsin. Benim daha nceden kastım byle bir şeydi aslında, farklı bilgi içerikli nesneleri eklemek. bir for dngüsü yerine ekleme metodunu ard arda farklı nesneleri parametre olarak geçirip, çağırma.. Ayrıca breakpoint koyarak, eklediğin nesnelerin id sine bakıp ve eklenecek olan nesnenin idsine bakıp sorunu grebilirsin. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hımm alakasız gibi geliyor ama çok hızlı gnderme yerine bir bekletme kodu yazsan ne olur? ikinci olark get yaptırmadan rastgele verileri kaydetmeyi dener misin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

: cvp gelmiş stackoverflow dan benim dediğim mantıkta.. bir de araştırırken şyle bir şey grdüm Set the StoreGeneratedPattern attribute to "Identity" for the primary key column in the Store part of the model. bazılarının hatası bundan kaynaklı. identity ya da store olarak ayarlayıp dene istersen Mesaj 26 Temmuz 2012 Saat: 17:27'da unbalanced tarafından düzenlendi. doğru dediğin gibi olabilir şyle birşey farkettim 1 veri ekledim diyelim sonra 1 tane daha eklediğimde ilk eklediğimi tekrar ekliyor 3. ekleyişimde de ilk ikisini tekrar ekliyor. edit: primary keylerin StoreGeneratedPattern propunu Identity yaptım yine değişen bişey yok :( edit:ne sikim iş Mesaj 27 Temmuz 2012 Saat: 10:47'da tqrL tarafından düzenlendi. Mesaj 27 Temmuz 2012 Saat: 10:57'da tqrL tarafından düzenlendi.

: hatadan anladığım kadarıyla şyle bir şey olabilir. bir dictionary yapın var, orada key değerinin uniqe yani benzersiz olması gerek, senin eklediğin veriler aynı key e sahipse bu hatayı verebilir yani Dictionaryk = new... k. Add("a", "12345"); k. Add("b", "1234546"); k. Add("c","12345"); //value aynı olsa da problem yok, key in farklı olması gerek k. Add ; burada hata vardır, çünkü a keyi uniqe olmalıdır. gibi bir hata olabilir hocam? eklediğim veriler primary key aynı id yi alsa dbyi geçemez ama dbye ekliyor veriyi fakat exception fırlatıyor

yle birşey mümkün olamaz zaten primary keyi set etmeden gnderiyorum oracle dbye yazdığım trigger sequenceden id atamasını yapıyor kendisi yani veriyi ekliyor fakat ekrana exception fırlatıyor

cvp gelmiş stackoverflow dan benim dediğim mantıkta.. bir de araştırırken şyle bir şey grdüm Set the StoreGeneratedPattern attribute to "Identity" for the primary key column in the Store part of the model. bazılarının hatası bundan kaynaklı. identity ya da store olarak ayarlayıp dene istersenMesaj 26 Temmuz 2012 Saat: 17:27'da unbalanced tarafından düzenlendi. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

şu link işini grmeli, http://stackoverflow.com/questions/1008582/invalidoperationexception-when-calling-savechanges-in-net-entity-framework - xx yerde hata var. - ya aslında kod şyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...

ObjectSet. AddObject ; objectSet dediğin nedir? sen eğer her insert de yeni bir instance yaratmıyorsan. sürekli objectset in içine ekliyor ve sen savechanges dediğinde oluyor. mantık basit niye karıştırdın? Datamodel datamodel = new Datamodel ; datamodel. kitaplar. add ; datamodel. savaChanges ; gibi.. tam kodları yazarsan yardımcı olalım - xx yerde hata var. - ya aslında kod şyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...

çok sık gnderince hata geliyor demişsin. acaba bir queue yapısı oluşturmak mantıklı olur muki?Mesaj 27 Temmuz 2012 Saat: 11:16'da FCN tarafından düzenlendi.

ardarda birden fazla veri eklediğimde The changes to the database were committed successfully, but an error occurred while updating the object context. The ObjectContext might be in an inconsistent state. Inner exception message: AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges. şeklinde bi hata alıyorum biraz bekleyip ekletince çıkmıyor genellikle BaseService'im aşağıdaki gibi public void Delete public void Add public void Attach public void Update problem server kaynaklımı yoksa modelden mi kaynaklanıyor tam anlayamadım arada bir hata çıkmıyor yardımlarınız için şimdiden teşekkürler :)

public void Add bi dene bakalım bişeyler olacak gibiMesaj 27 Temmuz 2012 Saat: 13:49'da SinusX tarafından düzenlendi. Si vis pacem para bellum.

gzden kaçırdığın bir şey olmalı o zaman hocam. çünkü exception uniqe ile ilgili bir hatayı gsteriyor.. biraz bekletip eklediğinde problem yok demişsin, burada tam olarak ne demek istemişsin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

sanırım problem şurada; oracle auto increment olayını yaparken sequence + trigger kullanması gerekiyor tabi entityi ekletirken primery keyi set etmeden verdiğimiz için 0 değeriyle gidiyor dbye işliyor çünkü db tarafında trigger sequenceden aldığı değeri set edip insert ediyor fakat servis katmanında patlıyor.

hatadan anladığım kadarıyla şyle bir şey olabilir. bir dictionary yapın var, orada key değerinin uniqe yani benzersiz olması gerek, senin eklediğin veriler aynı key e sahipse bu hatayı verebilir yani Dictionary<string, string> k = new... k. Add("a", "12345"); k. Add("b", "1234546"); k. Add("c","12345"); //value aynı olsa da problem yok, key in farklı olması gerek k. Add ; burada hata vardır, çünkü a keyi uniqe olmalıdır. gibi bir hata olabilir hocam? Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

benim hatadan anladığım kadarıyla, bir objyi kayıt ettiriyorsun sonra diğer kayıtta exception fırlatılıyor çünkü son kayıt ettirmeye çalıştığın objenin keyi, daha nce kayıt ettirdiğin objenin keyiyle eşit. iki tane veri ve farklı keylerde denemeye çalış. ayrıca db de primary key in auto increase olduğunu da teyit et Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

ben dummy verilerle kayıt yapıp test etmen gerektiğini düşündüm de neyse stackoverflow da konuyu açarsan oradan bir çzüm bulabilirsin belki Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

: şu link işini grmeli, http://stackoverflow.com/questions/1008582/invalidoperationexception-when-calling-savechanges-in-net-entity-framework hacı grdüm onu savechangesin aldığı tüm parametreleri denedim olmadı be