Witam Was bardzo serdecznie :)
Mam problem z dodawaniem do bazy lokalnej danych. Utworzyłem swoją bazę pod VS 2010 a do komunikacji z nią używam C# + Entity Framework. Jeśli utworzę np. tabelkę Produkty (ProduktID, Nazwa, Cena) i ustanowię ProduktID jako kolumnę do której za każdym razem muszę wpisywać id ręcznie (zostawiam "Identity" na false) wszystko działa poprawnie.
Wtedy dane dodaję tak:
Product produkt = new Product();
produkt.ProductID = Int32.Parse(productID.Text);
produkt.Nazwa = name.Text;
produkt.Cena = Decimal.Parse(cena.Text);
this.supplier.Products.Add(produkt);
this.productsInfo.Add(produkt);
productsList.DataContext = this.productsInfo;
baza.SaveChanges();
i wszystko działa jak należy. Jednakże zbędne jest żebym za każdym razem wpisywał id, które tylko daje podstawę klucza głównego w bazie, więc chciałem aby ProductID był generowany automatycznie i przy każdym nowym wpisie jego wartość się inkrementowała. Dlatego utworzyłem jeszcze raz tabelkę Produkty z tym że ustanowiłem ProductID na generującą auto increment id (dałem "Identity" na true, "Identity Increment" na 1 i Identity Seed" na 1).
Wtedy dane dodaję tak:
Product produkt = new Product();
//produkt.ProductID = Int32.Parse(productID.Text); // nie dodaję ProductID
produkt.Nazwa = name.Text;
produkt.Cena = Decimal.Parse(cena.Text);
this.supplier.Products.Add(produkt);
this.productsInfo.Add(produkt);
productsList.DataContext = this.productsInfo;
baza.SaveChanges();
Problem w tym, że przy próbie wywołąnia "baza.SaveChanges" wywala System.Data.UpdateException. Bardzo proszę o pomoc gdyż męczę się już z tym 3 dzień i chyba już nie dam rady :)
PS: Przy próbie zrobienia projektu z bazą *.mdf wszystko mi działało bardzo dobrze bo ProductID generował się automatycznie i nie wywalało wyjątków. Jednak zależy mi na działaniu bazy lokalnej *.sdf.
Z góry dziękuję wszystkim z pomoc i pozdrawiam :)