#entity-framework #entity-framework-6
#entity-framework #entity-framework-6
Вопрос:
Мне нужно получить список значений нереляционных объектов, используя навигационное свойство. В следующей модели для FVariable
я пытаюсь создать свойство навигации для ведения списка VariableValue
. Как определить независимую связь, как показано в модели FVariable
:
public virtual ICollection<VariableValue> Values { get; set; }
?
Эти две сущности связаны через VariableID
и DataAttributeCollectionID
свойства.
Вот FVariable
сущность:
public class FVariable
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int FVariableID { get; set; }
[Index(Unique, Order = 1)]
public int VariableID { get; set; }
[ForeignKey(nameof(F.VariableID))]
public virtual Variable Variable { get; set; }
[Index(Unique, IsUnique = true, Order = 2)]
public int? DataAttributeCollectionID { get; set; }
[ForeignKey(nameof(FVariable.DataAttributeCollectionID))]
public virtual DataAttributeCollection DataAttributeCollection { get; set; }
public virtual ICollection<VariableValue> Values { get; set; }
}
Вот VariableValue
сущность:
public class VariableValue
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int VariableValueID { get; set; }
[Index(Order = 1)]
public int VariableID { get; set; }
[ForeignKey(nameof(VariableValue.VariableID))]
public virtual Variable Variable { get; set; }
[Index(Order = 2)]
public double VariableValue { get; set; }
public int? DataAttributeCollectionID { get; set; }
[ForeignKey(nameof(VariableValue.DataAttributeCollectionID))]
public virtual DataAttributeCollection DataAttributeCollection { get; set; }
}
Комментарии:
1. В EF6 это возможно, только если
VariableID
иDataAttributeCollectionID
являютсяFVariable
первичным ключом.2. @GertArnold, ах, я вижу, что у меня, должно быть, неправильное понимание независимой ассоциации. Между объектами все еще должна существовать связь.