我收到此错误:
由于一个或多个外键属性不可为空,因此无法更改关系。当对关系进行更改时,相关的外键属性将设置为空值。如果外键不支持空值,则必须定义新关系,必须为外键属性分配另一个非空值,或者必须删除不相关的对象
每当我尝试从父母中删除孩子时。我知道之前已经问过这个问题,但没有人使用我正在使用的相同模式 下面是我的模特
public class Calender
{
public int CalenderId { get; set; }
public int SessionId { get; set; }
public string Title { get; set; }
public virtual Session Session{get;set;}
public virtual ICollection<CalenderDetail> Details { get; set; }
}
public class CalenderDetail
{
public int DetailsId { get; set; }
public string Activity { get; set; }
public DateTime StartDate { get; set; }
public int CalenderId { get; set; }
public virtual Calender Calender { get; set; }
}
我的服务
public void RemoveCalenderDetail(CalenderDetailsDTO calender)
{
if (calender.DetailsId > 0)
{
var dbcal = _unitOfWork.CalenderRepository.GetSingle(a => a.CalenderId == calender.CalenderId);
var chk=dbcal.Details.Remove(dbcal.Details.Where(a => a.DetailsId == calender.DetailsId).FirstOrDefault());
_unitOfWork.Commit();
}
}
删除实体的通用存储库方法
public virtual void Remove(T item)
{
if (item != (T)null)
{
//attach item if not exist
_dbSet.Attach(item);
//set as "removed"
_dbSet.Remove(item);
}
}
谢谢