Я использую последнюю версию Entity Framework (4.2) и пытаюсь реализовать интерфейсы для своих Entities, но по какой-то причине он не компилируется. error " Невозможно преобразовать тип выражения ICollection
". Если я не использую интерфейсы для сущностей, я не получаю эту ошибку.
У меня есть отдельный проект для интерфейсов (для репозиториев, служб и т. д.), и мне нужно передать объекты EF в этих методах в качестве параметров, и я не хочу передавать в них фактические объекты, потому что для этого потребуется, чтобы проект интерфейса имел зависимость на объектах EF.
моя цель в чем-то похожа на цель, упомянутую в этом посте Могу ли я абстрагироваться от Entity Framework от моих Entities?
вот образец. Я просто поместил здесь образец, мои настоящие сущности разные, но проблема та же.
public interface IOrder
{
int OrderId { get; set; }
int CustomerId { get; set; }
ICustomer Customer { get; set; }
}
public class Order : IOrder
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
ICustomer Customer { get; set; }
}
public interface ICustomer
{
int CustomerId { get; set; }
ICollection Orders { get; set; }
}
public class Customer : ICustomer
{
public int CustomerId { get; set; }
ICollection Orders { get; set; }
}
public class OrderMap : EntityTypeConfiguration
{
this.HasOptional(t => t.Customer)
.WithMany(t => t.Orders) //error comes from this line
.HasForeignKey(d => d.CustomerId);
}