【问题标题】:POCO with Generic Type and EF具有通用类型和 EF 的 POCO
【发布时间】: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


    【解决方案1】:

    实体框架不支持泛型类。从错误消息中可以清楚地看出: “...确认类型被定义为一个类,不是原始的或generic,并且不继承自EntityObject。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-02
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多