EdmAssociationConstraint :: the number of properties in dependent and main roles in constraining relationships

I have EdmAssociationConstraint :: The number of properties in the dependent and main roles in the connection limits this exception in EF 5

I want to fix this problem using data annotation

public class Task { [Key, Column(Order = 0)] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int TaskId { get; set;} public string Name { get; set; } } public class Trigger { [Key, Column(Order = 0)] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int TriggerId { get; set; } public string Name { get; set; } [Key, Column(Order = 1)] public int TaskId { get; set; } [ForeignKey("TaskId")] public virtual Task Tasks { get; set; } } public class TriggerHistory { [Key, Column(Order = 0)] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int TriggerHistoryId { get; set; } [Key, Column(Order = 1)] public int TaskId { get; set; } [ForeignKey("TaskId")] public virtual Task Task { get; set; } [Key, Column(Order = 2)] public int TriggerId { get; set; } [ForeignKey("TaskId")] public virtual Trigger Triggers { get; set; } public string Name { get; set; } } 
+4
source share
1 answer

There is a composite key in your trigger class (TriggerId, TaskId). But your TriggerHistory has a Trigger navigation property with ForeignKey defined using only the TaskId property.

Try changing the ForeignKey property to Triggers properties as follows:

 [ForeignKey("TriggerId,TaskId")] public virtual Trigger Triggers { get; set; } 

And perhaps the Triggers property should be called "Trigger" because it is not a collection of Trigger objects.

+7
source

Source: https://habr.com/ru/post/1488730/


All Articles