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