实体框架将模型添加到模型中,但未正确保存

时间:2012-11-26 01:42:40

标签: c# asp.net-mvc entity-framework ef-code-first

也许是一个简单的问题,但我似乎无法弄明白。将模型添加到数据库时将集合保存到模型不起作用。我有一个使用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);
}

在“事件”操作中设置断点并评估查询时,“范围”不会保存到事件中:

Code Screenshot

请注意,EF为事件范围模型创建的数据库确实保存了范围:

EF DB Screenshot

我做错了吗?

1 个答案:

答案 0 :(得分:0)

如果您将Ranges属性标记为virtual

,该怎么办?
public virtual ICollection<EventRange> Ranges { get; set; }