2011-04-08 3 views
0

J'ai un problème très étrange en utilisant le dernier EF 4.1 avec CodeFirst qui, je pense, vient d'une relation individuelle que j'ai.Entity Framework 4.1 CodeFirst Problème MVC

Le problème est bizarre dans le fait que j'ai deux contrôleurs de différentiel avec des entités indépendantes qui me permettent de lister et sauvegarder une ICollection d'une entité.

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

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

Les deux fonctionnent isolément. Par exemple j'en écris un en premier, édite et sauvegarde (travaille). Je saisis ensuite la seconde, édite et sauvegarde et ça ne marche pas. L'erreur que je reçois est:

Le dictionnaire des paramètres contient une entrée non valide pour le paramètre 'dailyHours' pour la méthode « 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 1 [App. Domain.HoursRemaining] », mais le paramètre nécessite une valeur de type « System.Collections.Generic.ICollection`1 [App.Domain.DailyHours] » nom du paramètre:. paramètres

Si je renverse l'ordre dans lequel Je édite et enregistre je reçois la même erreur mais avec le DailyHours et le HourRemaining dans l'inverse

Le ke aspects y des pocos sont:

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 n'a aucun lien direct avec l'une de ces:

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

J'ai ajouté le code dans OnModelCreating mon contexte d'établir le principe de la relation biunivoque:

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

Je ne peux pas résoudre ce problème du tout. Toute aide serait grandement appréciée.

Merci

Davy

Répondre

Questions connexes