Stu*_*ler 12 c# generics entity-framework-6
我和1..*之间有关系,父母在哪里.当我尝试删除记录时,我收到以下异常消息:XYXY
'Y'中的实体参与'FK_Y_X'关系.找到0个相关的'X'.预计1'X'.
我目前正尝试以通用,断开连接的方式删除记录,方法如下:
public bool Delete(TEntity entity)
{
if (entity == null)
{
return false;
}
try
{
var entry = _context.Entry(entity);
entry.State = EntityState.Deleted;
_context.SaveChanges();
return true;
}
catch
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
传入的实体AsNoTracking()在相同的上下文中加载.
有任何想法吗?
尝试向X添加一个公共属性YId来保持与Y的连接,这解决了我的问题,我将Breeze与EF6配合使用,并且遇到了相同的错误。
Class Y
{
public int Id { get; set; }
public ICollection<X> Xs { get; set; }
}
Class X
{
public int Id { get; set; }
public int YId { get; set; }
public Y Y { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当您context.Y.Attach(x);确保对象x拥有父实体的“Id”时。你需要两者。
例子:
x.Id = 3;
x.ParentEntity.Id = 10;
Run Code Online (Sandbox Code Playgroud)
那至少解决了我的问题。我忘记了我附加的对象中的父 ID。
| 归档时间: |
|
| 查看次数: |
9217 次 |
| 最近记录: |