技术开发 频道

LINQ to SQL公共基类

  虽然移除了实体间的关系,但却不用担心最终结果的正确性。Attach方法只负责将实体与DataContext的一个新实例进行关联,并跟踪实体的变化。在提交修改时,DataContext会检查映射的数据库中实际的值,然后再根据传递进来的实体更新或删除记录。特别的,我们需要在数据库中设置级联的Action,如图2所示:

                                                                              Figure 2: Set the delete rule

  如果没有action,在删除实体时,可能会抛出System.Data.SqlClient.SqlException异常,信息如下:

The DELETE statement conflicted with the REFERENCE constraint "FK_Orders_Employees". The conflict occurred in database "Northwind", table "dbo.Orders", column 'EmployeeID'.


  或许,你已经注意到在每个方法中都调用了InitDataContext方法,实现如下:

private TContext m_context = null;
private TContext CreateContext()
{
    
return Activator.CreateInstance<TContext>() as TContext;
}
private void InitDataContext()
{
    m_context
= CreateContext();
}
0
相关文章