2013-07-21 34 views
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. 

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

谢谢。

回答

0

好了,解决的办法是,我需要从本地删除实体系列中的DbContext:

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

我需要的是先拿到意甲的ID,然后清除在系列集合我视频和finllay从本地删除系列。

相关问题