如何从虚拟ICollection返回EnityCollection?

时间:2014-10-29 15:14:21

标签: c# entity-framework code-first

我使用Entity Framework Code First。 我有两个非常相似的类与虚拟ICollection属性。 以下是其中一个集合类:

public class Name
{
   public int Id{ get; set;}

   [MaxLength(64)]
   [Index(IsUnique = true)]
   [Required]
   public string Value { get; set; }

   public virtual ICollection<NameVariant> Variants { get; set; }
 }

 public class NameVariant
 {
   public int Id{ get; set;}

   [MaxLength(64)]
   [Index(IsUnique = true)]
   [Required]
   public string Value { get; set; }

   public int ParentId { get; set; }

   public virtual Name Parent { get; set; }
 }

我在一个案例中从Variants获取EntityCollection而在另一个案例中从HashSet获取。 它取决于什么?如何从两个类中获得EnityCollection?

1 个答案:

答案 0 :(得分:4)

该成员声明它将返回一个接口。您需要对该接口进行编码,并假设代码可以返回它想要的任何类型,只要该类型实现接口,而不是依赖于返回的特定具体实现。