Jump to content

est.sackan

Members
  • Content Count

    2
  • Joined

  • Last visited

Community Reputation

1 Neutral
  1. Merhaba, Cevabınız için teşekkürler, ilgili senaryo için belirttiğiniz oncascade özelliği verilmesi ile alakalı örnek kod bloğunu buradan paylaşabilirseniz aynı hatayla karşılaşan kullanıcılara katkısı olacaktır. İyi çalışmalar.
  2. MVC derslerinde ki Sepet projesinde ürünlerin sepete eklenip daha sonra siparişin tamamlanarak Northwind de ki Orders tablosuna kayıt olarak eklenmesini sağlamıştık. Ancak daha sonra projeye Admin Areas ekleyerek buradan Orders tablosuna kaydettiğimiz siparişleri Onaylayarak, her bir ürünün ayrı kalemler halinde OrderDetails tablosuna kaydedilmesi işleminde aşağıda ki hatayı almıştık. https://prnt.sc/rxfond Biraz araştırma yaparak problemin Northwind de ki OrderDetails tablosunda ki çok a çok bağlantıdan kaynaklandığını öğrendim.(Teorim yanlış da olabilir tabi ) Çünkü tabloya özel bir ID bulunmazken, OrderID ve ProductID adında farklı tablolarda PK(Primary Key) olarak bulunan sütunlar, bu tablo da da PK olarak bulunmaktaydı. DB de manuel olarak elle kayıt eklenebilirken, Entity Framework ortamında neden bu hatayı aldığımızı bulamadım, ancak kendi çapımda alternatif bir çözüm buldum. Adım Adım resimli şekilde aşağıda ki adımları takip edebilirsiniz; 1. Adım ) Northwind de ki OrderDetails tablosunu sağ tıklayıp siliyoruz. https://prnt.sc/rxfgd0 Ancak bu adımda OD yi tümüyle sileceğimiz için eski kayıtlar yok olacak, isterseniz işlemden önce Northwind in Backup ını alabilirsiniz. https://prnt.sc/rxg7cy - https://prnt.sc/rxg7wp 2. Adım ) Daha sonra New Query diyerek sorgu ekranına aşağıda ki kodları copy paste ederek Execute diyerek OrderDetails tablomuzu yeniden, bu sefer yapıya daha uygun şekilde oluşturulmasını sağlıyoruz. https://prnt.sc/rxfgsv Create Table Sorgusu: CREATE TABLE OrderDetails ( OrderDetailID int PRIMARY KEY IDENTITY(1,1) NOT NULL, OrderID int NOT NULL, ProductID int NOT NULL, UnitPrice money NULL, Quantity smallint NOT NULL, Discount real NULL, OrderStateID int NOT NULL ); 3.Adım ) Sağ tıklayıp New Diagram https://prnt.sc/rxfh6b 4.Adım ) https://prnt.sc/rxfi1d 5.Adım ) https://prnt.sc/rxflo8 6.Adım ) 5.Adım da ki işlemleri tamamladıktan sonra projeye dönerek Models klasörü içinde ki Model1.edmx dosyasını sağ tıklayıp Siliyoruz, ardından Web.config dosyasının içinde ki <connectionStrings> satırlarını silerek, Northwind i tekrardan projeye dahil ediyoruz. Son olarak DB yi yeniden ekledikten sonra projede ki ProductController sınıfında bulunan UnitPrice da hata alınacağı için, sadece Nullable<> ibaresinin kaldırılması yeterli olacaktır. https://prnt.sc/rxgztj Not: Eklediğim resimler bir süre sonra prnt.sc adresinden silineceği için bu konuya .rar halinde ekliyorum. od.rar
×
×
  • Create New...