0

我的数据库中有两个表是一对一的关系,是一个弱关系。

视频(IDVideo,IDType,年份,...)系列(IDSerie,IDVideo,...)

当我尝试更改视频的类型时,如果新类型不是系列,我想删除系列表中属于该视频的行。所以我按照以下步骤操作:

Videos myVideoDB = myContext.Videos.Include("Series").Where(v=>v.IDVideo == paramVideo.IDVideo).FirstOrDefault<Videos>();

myContext.Series.Remove(myVideoDB.Series.ElementAt(0));

在第二行中,我收到以下错误:

Multiplicity constraint violated. The role 'videos' of the relationship 'xxx' has the multiplicity 1 or 0..1.

为什么?我认为当我删除 Serie 时,DbContext 知道它必须从视频集合中删除实体。否则,我尝试先从视频集合中删除该实体,然后再删除该系列,但问题并未解决。

谢谢。

4

1 回答 1

0

嗯,解决办法是我需要在DBContext中从本地删除实体Series:

long idSerie = miVideoDB.Series.ElementAt(0).IDSerie;
myVideoDB.Series.Clear();
miContexto.Series.Local.Remove(miContexto.Series.Local.FirstOrDefault<Series>(s => s.IDSerie == idSerie));

我需要的是首先获取系列的ID,然后清除我视频中的系列集合,最后从本地删除系列。

于 2013-07-23T11:08:19.150 回答