是否可以使用具有泛型类型的POCO并映射到实体框架代码优先?我问的原因是我在context.Products.Add(product)上得到以下错误; CreateNewProduct()方法的行 -
未映射类型'CodeFirstNewDBConsole.Product`1 [CodeFirstNewDBConsole.ProductDetail]'。使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型。验证类型是否已定义为类,不是原始类型还是通用类型,并且不从EntityObject继承。
POCO
public class Product<T>
{
public int Id { get; set; }
public string ProductName { get; set; }
public T ProductDetails { get; set; }
}
ProductContext
public class ProductContext : DbContext
{
public DbSet<Product<ProductDetail>> Products { get; set; }
}
产品插页
private static void CreateNewProduct()
{
var productDetail = new ProductDetail { ProductDetailName = "Test Product Detail" };
var product = new Product<ProductDetail>
{
ProductName = "Test Product",
ProductDetails = productDetail
};
using (var context = new ProductContext())
{
context.Products.Add(product);
context.SaveChanges();
}
}
答案 0 :(得分:0)
实体框架不支持通用类。从错误消息中可以清楚地看出: “...验证类型是否已定义为类,不是原始类型还是泛型,并且不从EntityObject继承。”