【发布时间】:2014-08-30 15:55:15
【问题描述】:
是否可以使用具有泛型类型的 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; }
}
产品上下文
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();
}
}
【问题讨论】:
标签: entity-framework generics types poco