解决方案
  1.确认数据库表是否存在
  2.确认BaseContext:DbContext类中是否有属性
  3.确认实体类中字段与主键
  4.确认实体于数据库表是否关联
  [Table("a_Emp")]
  public class Employee
  另:实体类上面的[table]小括号里面的是数据库的表名,并且该标记需要引用dll
  using System.ComponentModel.DataAnnotations;
  using System.ComponentModel.DataAnnotations.Schema;
  数据库字段记录为null时 ef 操作数据库报错

  错误排查
  这个问题是数据库字段为空导致的,ef 反射赋值时实体时发生的错误,如:ToList()、
  _db.Set<TEntity>().AddRange(entry);_db.SaveChanges();
  解决方案
  2种任选一种
  1.将数据库所有字段都赋值,不存在为空的情况 自然不会报错,但毕竟繁琐
  2.将数据库中可空字段再实体中用可空类型表示
  如:
  public DataTime? CreateTime{get;set;}
  public int? Num{get;set;}
  public decimal? Pirce{get;set;}
  目前我知道的这2种,应该够用了
  EF中的外键
  外键是常用的数据关联形式,在数据访问中占据重要位置,下面来看看使用外键的几个步骤
  一、将2个实体类都准备好,一个主键表一个外键表,例如 员工表中需要部门编号 那么需要准备员工类和部门类
  二、在员工实体类Employee中加入一个对象实体,加一个部门Id,没错,不是一个单纯的部门ID 而是实体
  [Key]
  public int EmpId { get; set; }
  /// <summary>
  /// 姓名
  /// </summary>
  public string EmpName { get; set; }
  /// <summary>
  /// 性别
  /// </summary>
  public string Sex { get; set; }
  /// <summary>
  /// 生日
  /// </summary>
  public DateTime BirthDay { get; set; }
  /// <summary>
  /// 部门
  /// </summary>
  public int DepId { get; set; }
  /// <summary>
  /// 关联主表
  /// </summary>
  [ForeignKey("EmpId")]
  public Dept Dept { get; set; } //注意:ForeignKey("EmpId")中的EmpId 是员工类的主键
  四、Dept部门表中必须有主键
  五、调用的时候

  db.a_Emp.Include("Dept").Where(l => l.Dept.name.Contains(name)||string.IsNullOrEmpty(name)).ToList()
  其中a_Emp是员工类的实体对象,在baseContext里面的 public DbSet<Employee>a_Emp { get; set; }
  Dept.name是可以直接点出来的了
  总结
  以上是我遇到的众多问题之一,限于篇幅和时间,暂时记录到这里吧。如果有什么理解错误的地方,还望指正!!!