2011-04-08 118 views
0

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

这个问题很奇怪,我有两个不相关的控制器与不相关的实体,允许我列出并保存实体的ICollection。

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

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

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

参数字典包含参数“dailyHours”的方法“System.Web.Mvc.ActionResult编辑(的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 1应用的无效条目。 Domain.HoursRemaining]”,但参数需要类型的值‘System.Collections.Generic.ICollection`1 [App.Domain.DailyHours]’参数名:参数

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

The ke在波苏斯Y的方面是:

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); 

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

感谢

戴维

回答