Je rencontre des problèmes dans la cartographie d'un type complexe sur une classe modèle (appelé Assignment
) à l'aide EntityFramework 6.code EF6 Première/erreur lancer API Courant avec des types complexes
J'ai la classe modèle Assignment
suivant (seulement pertinente membres sont représentés):
public class Assignment
{
private AssignmentDueByInfo _dueIn;
public Assignment() {
_dueIn = new AssignmentDueByInfo(this)
}
public virtual AssignmentSettingInfo DueIn
{
get { return _dueIn; }
protected set { _dueIn = value; }
}
}
où AssignmentSettingInfo
est défini comme:
public class AssignmentSettingInfo
{
protected AssignmentSettingInfo(Assignment assignment)
{
Assignment = assignment;
}
protected readonly Assignment Assignment;
public virtual int? LessonId { get; protected set; }
public virtual Lesson Lesson { get; protected set; }
}
Dans Entity Framework 6, I ha ve les éléments suivants cartographie CodeFirst/API Fluent pour la classe Assignment
à une table dans une base de données:
Property(t => t.DueIn.LessonId).HasColumnName("DueByLessonId");
HasOptional(x => x.DueIn.Lesson)
.WithMany(x => x.AssignmentsDue)
.HasForeignKey(x => x.DueIn.LessonId)
.WillCascadeOnDelete(true);
La mise en correspondance jette l'erreur suivante:
The expression 'x => x.DueIn.Lesson' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty'
Pourquoi cela se produit et comment faut-il fixé?
Je pense c'est la limitation EF - les types complexes ne peuvent pas contenir de propriétés de navigation. –