Zdravim. Mam takyto problem s entity frameworkom: Mam jednoduchy formular, kde mam iba jeden input typu textarea. Do toho mozno pisat tagy, ktore su separovane s ciarkou. Po kliknuti na submit tieto tagy rozlozim do pola, a chcem ich zapisat do databazy.
[HttpPost]
public ActionResult SendTags(FormCollection form)
{
char[] delimiter = { ',' };
List<string> userTags = RemoveDuplicates(form["tags"].Split(delimiter).ToList());
int image_id = Int32.Parse(form["imgId"]);
List<Tagger> taggerItems = new List<Tagger>();
foreach (var tag in userTags)
{
Tagger taggerItem = new Tagger();
taggerItem.ImageId = image_id;
taggerItem.Tag = tag;
taggerItem.TagCount = 1;
taggerItems.Add(taggerItem);
}
//var manager = ((IObjectContextAdapter)_db).ObjectContext.ObjectStateManager;
foreach (var taggerItem in taggerItems)
{
taggerRepository.InsertTagger(taggerItem);
}
taggerRepository.Save();
RedirectToAction("GetAllTags", "Tagger");
}
TaggerRepository spravuje tagy. Metoda Save() zavola SaveChanges() metodu a prida prvky do databazy. Problem je v tom, ze vsetky prvky sa pridaju 2krat. A potom ked uz mam nejake prvky v databaze, tak potom nieze len tie nove sa tam pridaju 2krat ale aj tie ktore tam povodne boli. Som junior co sa tyka EF-u, preto Vas poprosim, keby ste mali hocico co by mi mohlo pomoct, tak mi napiste. Dakujem! P.S. Keby nahodou by niekto potreboval viac toho kodu tak mi piste. :) Vdaka.
|