0

そのイベントに対応する Event と EventDetails を保存しようとしています。ループのみから
イベントと最初のEventDetailを保存しています。

public class Event
{
    [Key]
    public int CourseId { get; set; }
    ..
    public virtual ICollection<EventDetail> EventDetails{ get; set; }
}  

コントローラ:

[HttpPost]
public ActionResult Create(Event ev)
{
        if (ModelState.IsValid)
        {

            IQueryable<EventDetail> eventList = ..;

            FutureEvents fe = new FutureEvents();
            ICollection<FutureEvents> feCol = new Collection<FutureEvents>();

            foreach (EventDetail det in eventList)
            {
                fe.Name = ..;
                db.Entry(fe).State = EntityState.Added;
                feCol.Add(fe);
            }

            ev.EventDetails = feCol;
            db.Event.Add(ev);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(ev);
}
4

2 に答える 2

1

単一のオブジェクトを作成し、反復ごとに変更しました。これを試してください:

[HttpPost]
public ActionResult Create(Event ev)
{
        if (ModelState.IsValid)
        {

            IQueryable<EventDetail> eventList = ..;

            ICollection<FutureEvents> feCol = new Collection<FutureEvents>();

            foreach (EventDetail det in eventList)
            {
                FutureEvents fe = new FutureEvents();
                fe.Name = ..;
                db.Entry(fe).State = EntityState.Added;
                feCol.Add(fe);
            }

            ev.EventDetails = feCol;
            db.Event.Add(ev);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(ev);
}
于 2013-07-29T03:45:41.683 に答える
1

動く

FutureEvents fe = new FutureEvents();

foreachループ内。を 1 つだけ作成しFutureEventsたため、1 つが保存されます。

于 2013-07-29T03:41:49.897 に答える