ilginc bir sorun gibi geldi bana hocam.. Imkanin varsa obj. GetType ile tam tipini grensene.. Bir sekilde bu iki nokta esit degil.. Ayrica bu obj ve p nesnelerini hem hem de Equals ile karsilastirir misin? Bu ikisinin bire bir olmasina imkan yok, watch ile objelerin iceriklerine baktin mi hangi property degerlerini almis.. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Hocam sistem soyle BusinessLayer public static class ProductServices { public static bool Update { try { if (HasAnotherSameProduct else { try catch } return false; } catch } } DataLayer public class ProductRepository : IProductRepository { public void Update { using (TiresEntities db = new TiresEntities } } Bu ustteki en son yaptigim hali. Yan yoldan ama mecbur kaldim vermem gerekirdi musteriye. Ilk posttaki gibi Update fonksiyonunun icinde db. Products. Attach ;db. Entry . State = System. Data. Entity. EntityState. Modified;db. SaveChanges ; kullaninca veriyordu. obj nesnesini direkt bindingSource. Current <- ten cast ederk aliyorum bindingSource. Current as Product diyerek. Bu arada yazdiklarin ilac gibi gelecek hocam sagol. T lari fln gordum ama bilmedigim ve kullanmadigim icin zmn kaybi yasarim diye hic dokunmadim. Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

Siz nasil hallediyorsunuz bu update olayini ef 6 da comboboxcolumn ile Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

Selam hocam, PK -> FK bağlantısı kurmuşsun. Product taki CategoryID ProductCategory tablosunda bulunmuyor. https://www.youtube.com/watch?v=WC3-71NKwPw

Bir kac gundur bu sorunla ugrasiyorum. Gozden kacirdigim bir nokta olmali muhakkak. DataGridView icinde DataGridViewComboBoxColumn lar var. EntityFramework6 ile bilgileri cekebiliyorum ve gosterebiliyorum. Grid icindeki ComboBoxlara ayri bir bindignsource vererek kullaniciya editleme kolayligi saglamak istiyorum. Lakin db. Products. Attach ;db. Entry . State = System. Data. Entity. EntityState. Modified;db. SaveChanges ; dedigimdeA referential integrity constraint violation occurred: The property value of 'ProductCategory. ProductCategoryID' on one end of a relationship do not match the property value of 'Product. ProductCategoryID' on the other end. hatasi aliyorum. normal sekilde update edebiliyorum fakat ben bindingsource teki Currenti kullanarak yapmaya calisiyorum ve bu sorun ortaya cikti. Sorun ne acaba?Iki taraftaki Keylerin ayni olmadigini soyluyor. Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

selam hocam, parametre olarak verdigin obj nesnesi product tablosundakini tam olarak karsilamiyor. Anladigim kadariyla bu obj, gridview indeki bir kolonu temsil ediyor ve orada iki farkli binding kullandigin icin eslesme olmuyor. Sana tavsiyem bir tane class converter yazman. Bu obj yi verip sana salt product tablosuna uygun product sinifinin bir rnegini dndersin. Product instance da bahsettigin kategori ID yi deger olarak verirsin. Ikinci olarak obj yi product class ine cast etmeyi bir dene, eger ederse category id sine bak nasil grünüyor. Eger sistem anladigim gibiyse cast edemeyecek. Diger soruna gelince; her farkli tablo icin ayri ayri crud kodu yazman gerek yok. Asagida kullandigim generic bir kod var. Bu metodlar tüm tablolarindaki verilere islem yapinca kullanabilirsin. Kafan biraz karisabilir belki ama kullanimi cok zor degil. Buraya adim adim yazayim.. Adim 1: Ilk basta bir GenericRepository abstract class imizi ve onun Interface'i olan IGenericRepository i yaratalim. Bu class bizim icin CRUD islemlerini yapiyor ve ayni zamanda ben ekstra bir kac fonksiyon daha ekledim. Mesela GetAll, FindBy, FindFirst gibi.. Senin de isine yarayacak genel olarak kullanacagin db islemi ile ilgili fonksiyonunu buraya yazabilirsin. Mesela verilen tablodaki kayit sayisini dnderen fonksiyon ya da son elemani dnderen fonksiyon gibi.. public interface IGenericRepository where T : class Bu da abstract classimiz public abstract class GenericRepository<C, T> : IGenericRepository where T : class where C : DbContext, new { private C _entities = new C ; public C Context { get set } public virtual T GetById public virtual IQueryable GetAll public IQueryable FindBy public T FindFirstBy public virtual T Add public virtual void Delete public virtual void Edit public virtual int Save public virtual int Count } Adim 2: Daha sonra islem yapacagimiz class imiz icin bir interface olusturalim. Benim rnegimde Employee üzerine is yaptigi icin EmployeeService ve onun interface i IEmployeeRepository. Bir kac fonksiyon rnek de ekledim. Nasil kullanildigini grebilirsin. Ilk nce yine interfaceimizi olusturalim public interface IEmployeeRepository : IGenericRepository ve simdi de is yapan classimizi ekleyelim. Metod aciklamalarini vs siliyorum cok yer kaplamasin diye public class EmployeeService : GenericRepository<MyEntities, employee>, IEmployeeRepository { public Employee EmployeeLoginByEmail public GeneralDefinitions. OperationResult CreateNewEmployee public GeneralDefinitions. OperationResult EditEmployee { if { if else } var employeeFromUser = SurrogateTool. GetDataEmployeeByEmployee ; Edit ; return Save > 0? GeneralDefinitions. OperationResult. Successful : GeneralDefinitions. OperationResult. Failed; } public List GetEmployeesByCustomerId } Burada grdügün gibi yaptigim tek sey, IGenericRepository interface inde olan fonksiyonlari parametrelerle cagirmak. Bu olayi tüm entity class larim icin uygulayabilirim ve hepsinde ayni fonksiyonlari kullanabilirim. Burada dikkat etmen gereken en nemli sey. Eger DB ye bir sey yaziyorsan , islemi yaptiktan sonra Save metodunu cagirmalisin. Save metodu da sana integer olarak islemin basarili olup olmadigini sylüyor. Eger 0 dan büyük ise islem basarilmis, degilse islem yapilmamis anlamindadir. Istiyorsan GenericRepository icerisinde her insert-update-delete metodunun sonunda Save metodunu cagirip ve sonucu yle gnderebilirsin, sana kalmis. Ben bu sekilde yaptim. Avantaji su, mesela yeni bir kayit eklerken insert , bana eklenen kaydi geri dnderiyor ve icerisinde ID si ile birlikte.. Bu tarz seyler kullaniyorsan ayri yapmak daha iyi olabilir. Umarim faydali olur rnek. Kolay gelsin Edit: Bir kac aciklama yapma geregi duydum MyEntities dedigim benim entity im adi, employee yazan da bu entity de var olan bir class SurrogateTool class i da benim icin class lari ceviyor. Mesela bazen atiyorum customer ile employee class inin bazi gelerini birlestirmek istiyorum, ama db ye bu sekilde kayit edemeyecegim icin bana entity icin class lari dnderiyor. Baska sorun olursa sorabilirsin unbalanced tarafından 17/Haz/17 10:26 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Selam hocam, PK -> FK bağlantısı kurmuşsun. Product taki CategoryID ProductCategory tablosunda bulunmuyor. Hocam CategoryID DB de ProductCateogry tablosunda bulunuyor ama... Olay su hocam. mavi okla gorunen yere ayri bindingsource diger combolar icinde 2 tane ayri bidnin source kullaniorum. ACaba sorun burada mi? Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin