zoukankan      html  css  js  c++  java
  • System.InvalidOperationException: The type MyContext+Northwind was not mapped.

    System.InvalidOperationException: The type MyContext+Northwind was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject.

    错误原因:

     entity framework不能将内部类与数据库匹配。

    错误代码如下所示:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Data.Entity;
     6 using System.ComponentModel.DataAnnotations;
     7 
     8 namespace TestCodeFirst
     9 {
    10     public class MyContext
    11     {
    12         public class Product
    13         {
    14             public int ProductID { get; set; }
    15             public int CategoryID { get; set; }
    16             [Required(ErrorMessage = "Product Name不能为空")]
    17             public string ProductName { get; set; }
    18             public Decimal? UnitPrice { get; set; }
    19             public bool Discontinued { get; set; }
    20             public virtual Category Category { get; set; }
    21         }
    22 
    23         public class Category
    24         {
    25             public int CategoryID { get; set; }
    26             public string CategoryName { get; set; }
    27             public string Description { get; set; }
    28             public byte[] Picture { get; set; }
    29             public virtual ICollection<Product> Product { get; set; }
    30         }
    31         public class Northwind : DbContext
    32         {
    33             public DbSet<Product> Products { get; set; }
    34             public DbSet<Category> Categorys { get; set; }
    35         }
    36     }
    37 }


    解决的办法:Northwind作为内部类。正确的代码如下所示

     1 namespace TestCodeFirst
     2 {
     3        public class Product
     4        {
     5            public int ProductID { get; set; }
     6            public int CategoryID { get; set; }
     7              [Required(ErrorMessage="Product Name不能为空")]
     8            public string ProductName { get; set; }
     9            public Decimal? UnitPrice { get; set; }
    10            public bool Discontinued { get; set; }
    11            public virtual Category Category { get; set; }
    12        }
    13 
    14        public class Category
    15        {
    16            public int CategoryID { get; set; }
    17            public string CategoryName { get; set; }
    18            public string Description { get; set; }
    19            public byte[] Picture { get; set; }
    20            public virtual ICollection<Product> Product { get; set; }
    21        }
    22        public class Northwind:DbContext
    23        {
    24            public DbSet<Product> Products { get; set; }
    25            public DbSet<Category> Categorys { get; set; }
    26     }
    27 }


    作者:kissazi2
    出处:http://www.cnblogs.com/kissazi2/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    day34-python-异常
    day33-python-反射、内置方法、元类、 属性查找
    day31/32待补
    day30-mixin、重载、多态、绑定与非绑定方法、内置函数
    day29-python-property、继承、属性查找、多继承带来的菱形问题
    day28-python-封装
    day27-python-面向对象介绍、实现面向对象编程、查找顺序
    luffy项目
    oc基本数据类型
    iOS 入门了解
  • 原文地址:https://www.cnblogs.com/kissazi2/p/2843944.html
Copyright © 2011-2022 走看看