代码优先问题MVC



我有一个非常奇怪的问题,使用最新的EF 4.1与CodeFirst,我认为这是来自一个一对一的关系,我有。

问题是奇怪的,我有两个不同的控制器与不相关的实体,允许我列出和保存一个实体的集合。

http://localhost:51638/DailyHours/Edit/1 and
http://localhost:51638/HoursRemaining/Edit/1

两者单独工作。例如,我先输入一个,编辑并保存(works)。然后我进入第二个,编辑并保存,但它不起作用。我得到的错误是:

参数字典中包含一个无效的参数'dailyHours'条目,用于方法'System.Web.Mvc.ActionResult Edit(Int32, System.Collections.Generic.ICollection 1[App.Domain.DailyHours])' in 'App.Web.Controllers.DailyHoursController'. The dictionary contains a value of type 'System.Collections.Generic.List [App.Domain. domain . domain . domain]]。HoursRemaining]',但参数需要类型为'System.Collections.Generic.ICollection ' 1[App.Domain.DailyHours]'的值。参数名称:parameters

如果我颠倒编辑和保存的顺序,我会得到相同的错误,但与DailyHours和HourRemaining相反。

pocos的关键方面是:

public class Task
{
    [Key]
    public int TaskId { get; set; }
    public virtual HoursRemaining HoursRemaining { get; set; }
}
public class HoursRemaining
{
    [Key]
    public int TaskId { get; set; }
    public virtual Task Task { get; set; }
}

DailyHours与这两个都没有直接关系:

public class DailyHours
{                      
    [Key]
    public int DailyHoursId { get; set; }
    public virtual Sprint Sprint { get; set; }
}

我在上下文的OnModelCreating中添加了代码,以建立一对一关系的原则:

modelBuilder.Entity<Task>().HasOptional(h => h.HoursRemaining).WithRequired(t => t.Task);

我根本无法解决这个问题。如有任何帮助,我将不胜感激。

感谢戴维

回答这里。模型绑定两个或多个集合

谢谢

最新更新