Tôi đang sử dụng phiên bản mới nhất của Entity Framework (4.2) và cố gắng triển khai giao diện cho Thực thể của mình và vì lý do nào đó, nó không được biên dịch. nó đang ném một lỗi "Cannot convert expression type ICollection<IOrder> to return type ICollection<Order>
". nếu tôi không sử dụng giao diện cho các thực thể, thì tôi không nhận được lỗi này.lỗi khi sử dụng giao diện cho thực thể Khung thực thể (4.2)
Tôi có một dự án riêng biệt cho giao diện (cho kho và dịch vụ ...) và tôi cần chuyển các thực thể EF trong các phương thức đó làm tham số và tôi không muốn truyền thực thể trong đó, vì điều đó sẽ yêu cầu giao diện dự án để có một sự phụ thuộc vào các thực thể EF.
mục tiêu của tôi là hơi tương tự như đề cập trong bài này Can I abstract Entity Framework away from my Entities?
đây là mẫu. Tôi chỉ cần đặt một mẫu ở đây, các thực thể thực tế của tôi là khác nhau, nhưng vấn đề là như nhau.
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);
}
thể workaround tại http://stackoverflow.com/questions/9805329/how-to-use-interface-properties-with-codefirst/10994290 # 10994290 – Cel