2012-11-26 114 views
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); 
} 

當設置在活動行動斷點和評估查詢,範圍是不會保存到事件:

Code Screenshot

請注意,數據庫創建d由EF的eventrange模型並保存範圍:

EF DB Screenshot

我做錯什麼了嗎?

回答

0

如果您將Ranges物業標記爲virtual,該怎麼辦?

public virtual ICollection<EventRange> Ranges { get; set; } 
+0

工作,謝謝!虛擬財產似乎需要延遲加載。 – user1830148

+0

是的,這是正確的。 – laszlokiss88

相關問題