Kezdőoldal » Számítástechnika » Programozás » C# LINQ rekord eltávolítása...

C# LINQ rekord eltávolítása foreign constraint jelenléte esetén?

Figyelt kérdés

Van egy receptalkalmazás, amiből törölni kellene tudni recepteket. Egy recept úgy áll össze, hogy fogásID idegen kulcsként, mennyiség, mennyiség mértékegységID idegen kulcsként és nyersanyagID idegen kulcsként. Ha szeretnék törölni egy receptet, azt hogy tudom megtenni. Arra gondoltam, hogy végigiterálok az összes olyan rekordon, ami a törlendő fogásID-kat tartalmazza, majd minden értéket null-ra állítok (adatbázisban felvehet minden null értéket). A problémám, hogy mégsem hagyja null-ra állítani kódból, mivel az Anonymous Type read-only. Hogy tudnám ezt valahogy megoldani? A kód, amire jutottam:


Fogasok fogás = (Fogasok)újÉtelekListBox.SelectedItem;


var tf = (from r in db.Receptek

join f in db.Fogasok on r.FogasID equals f.FogasID

join me in db.MennyisegEgysegek on r.MennyisegEgysegID equals me.MennyisegEgysegID

join ny in db.Alapanyagok on r.NyersanyagID equals ny.AlapanyagID

where f.FogasID == fogás.FogasID

select new { me.MennyisegEgysegID, r.Mennyiseg, ny.AlapanyagID }).ToList();



foreach (var item in tf)

{

item.AlapanyagID = null;

item.Mennyiseg = null;

item.MennyisegEgysegID = null;

}



db.Fogasok.DeleteObject(fogás);


db.SaveChanges();



2014. ápr. 3. 22:25
1 2
 11/12 A kérdező kommentje:

Na, sikerült. Ha valakinek, valami hasonló kell majd egyszer:


Fogasok fogás = (Fogasok)újÉtelekListBox.SelectedItem;


int receptekSzáma = (from r in db.Receptek

where r.FogasID == fogás.FogasID

select r.ReceptID).Count();



if (receptekSzáma == 0)

{

db.Fogasok.DeleteObject(fogás);

db.SaveChanges();

}

else

{

while (receptekSzáma > 0)

{

Receptek rp = ((ObjectQuery<Receptek>)db.Receptek)

.Include("Fogasok")

.Include("Alapanyagok")

.Include("MennyisegEgysegek")

.FirstOrDefault(i => i.FogasID == fogás.FogasID);

if (rp == null)

{

db.Fogasok.DeleteObject(fogás);

db.SaveChanges();

return;

}

else

{

db.Receptek.DeleteObject(rp);

db.SaveChanges();

}


}

2014. ápr. 6. 10:37
 12/12 anonim válasza:

moha for president!

csak a gazdinfó <3

2014. ápr. 27. 15:38
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!