code first 增添数据时引用属性赋值一直报错

code first 添加数据时引用属性赋值一直报错
code first 添加数据时引用属性赋值一直报错:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details. 
验证失败的一个或多个实体。详细信息请参见“EntityValidationErrors'属性。


BLL.CityService csbll = new BLL.CityService();
Models.City City = csbll.Find(City_CityID);
Models.Customer model = new Models.Customer();
model.City = City;
.........//各个属性赋值
........
bll.Add(model);//这句报错



下边这个是DAL层里报错的位置

public T Add(T entity)
        {
            nContext.Entry<T>(entity).State = System.Data.Entity.EntityState.Added;
            nContext.SaveChanges();//报错位置
            return entity;
        }



models层

/// <summary>
        /// 公司所在城市
        /// </summary>
        [Required(ErrorMessage = "必填")]
        [Display(Name = "公司所在城市")]
        public virtual City City { get; set; }//引用属性

------解决思路----------------------
SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关

------解决思路----------------------
db.Configuration.ValidateOnSaveEnabled = false;  
int count = db.SaveChanges();  
db.Configuration.ValidateOnSaveEnabled = true;