(使用:Visual Studio 2010,SQL Server 2012,Entity Framework 4.0,MVC3 Web应用程序)
我有一对多和多对多关系的表,我使用(数据库优先)自动生成模型类,这意味着我有从EntityObject
继承的对象和从{继承的基类{1}}。
我遇到(插入,更新,删除)对象时遇到问题。
例如,在创建对象时:我在2个表(ObjectContext
和Area
)和中间表(Cell
)之间存在多对多关系,我想要添加一个连接到许多区域的新CellArea
对象,所以我做了以下代码:
Cell
我尝试了其他代码段,但没有一个有效,我总是得到Cell _cell = new Cell()
foreach (Area ar in current_areas)
{
var ca = new CellArea();
//ca attributes
_cell.CellAreas.Add(ca);
}
db.SaveChanges();
db.Cells.AddObject(_cell);
db.SaveChanges();
和其他类似的例外。
管理此类案件的正确方法是什么?
答案 0 :(得分:0)
当存在可交互关系时,EF应该创建所谓的导航属性。执行初始查询时,您可以选择是否加载这些属性。特别是EF有一个名为Include的关键字,允许您随意填充其他属性。如果包含所有其他日期并进行了任何更改,则只需调用SaveChanges方法,原始表数据和所有导航属性数据将一次保存。
Google“EF Include”