2013-05-14 31 views
0

在需要为1-1关系添加新行的情况下,是否需要指定添加或附加?如果需要,我该怎么做?我是否需要指定添加或附加

//one tblContent to one tblContentData 
//updating the tblContentData corresponding to a particular id in tblContent 

int id = 12345; 
tblContent entity = db.tblContents.Where(con => con.id == id) 
         .FirstOrDefault(); 
if (entity == null) 
    throw new Exception("id was bad"); 

if (entity.tblContentData == null) 
    entity.tblContentData = new tblContentData(); 

//proceed with updating the foreign keyed table 

回答

1

Add适用于新行。 Add不适合更新。在您发布的代码,实体和上下文之间的关系应予以保留,所以你需要调用:

db.SaveChanges();

保留的任何更新。

在关系被打破,你可以用Entry更新项目情况:

db.Entry(entity).State = EntityState.Modified; 
    db.SaveChanges(); 
+0

你需要添加 'db.Entry(实体).STATE = EntityState.Added;'一个新行,或者Entity Framework会为我处理? – 2013-05-14 18:09:08

+1

@ChristopherStevenson - 对于新项目,您应该使用“添加”。当做CRUD => Create's = Add时,Edit的我使用Entry。 – 2013-05-14 18:10:56

相关问题