1

たぶん簡単な質問ですが、私はそれを理解できないようです。モデルをデータベースに追加するときにコレクションをモデルに保存することが機能しない。asp.net MVC とエンティティ フレームワークを使用するサイトがあります。

モデル:

public class Event
{
    public int Id { get; set; }

    public string Name { get; set; }
    public string Description { get; set; }

    public ICollection<EventRange> Ranges { get; set; }
}

public class EventRange
{
    public int Id { get; set; }

    public string RangeName { get; set; }
    public string RangeDescription { get; set; }

    public int Capacitiy { get; set; }
}

コントローラーのアクション:

[HttpPost]
public ActionResult Create(Event model)
{
    ICollection<EventRange> eventRanges = new Collection<EventRange>();
    var range = new EventRange {RangeName = "testrange", RangeDescription = "test", Capacitiy = 5}

    eventRanges.Add(range);
    model.Ranges = eventRanges;

    db.Events.Add(model);
    db.SaveChanges();

    return View();
}

public ActionResult Events()
{
    return View(db.Events);
}

Events アクションにブレークポイントを設定してクエリを評価すると、Range はイベントに保存されません。

コードのスクリーンショット

EF によって eventrange モデル用に作成されたデータベースは範囲を保存することに注意してください。

EF DB スクリーンショット

私は何か間違ったことをしていますか?

4

1 に答える 1

0

Rangesプロパティを としてマークするとどうなりますvirtualか?

public virtual ICollection<EventRange> Ranges { get; set; }
于 2012-11-26T10:30:41.957 に答える