Linq to sql LINQ to SQL:如果我向LINQ实体集添加对象,则不会';它不是被添加了吗
假设我有一个公司表和一个部门表。每个部门都有一个公司的外键,因此每个公司都可以有多个部门子级Linq to sql LINQ to SQL:如果我向LINQ实体集添加对象,则不会';它不是被添加了吗,linq-to-sql,Linq To Sql,假设我有一个公司表和一个部门表。每个部门都有一个公司的外键,因此每个公司都可以有多个部门子级 如果我使用Linq to sql获取一个公司对象,我就可以访问它的Divisions属性,即Division对象的实体集。如果我向其中添加一个新的Division对象并调用SubmitChanges(),它不会自动进入Division表,还是我被迫调用InsertOnSubmit?有多种方法可以使用LINQ to SQL将对象插入数据库。例如: db.Divisions.InsertOnSubmit(n
如果我使用Linq to sql获取一个公司对象,我就可以访问它的Divisions属性,即Division对象的实体集。如果我向其中添加一个新的Division对象并调用SubmitChanges(),它不会自动进入Division表,还是我被迫调用InsertOnSubmit?有多种方法可以使用LINQ to SQL将对象插入数据库。例如:
db.Divisions.InsertOnSubmit(new Division()
{
Company = db.Company.Single(c => c.Id == 1),
// other properties
});
db.SubmitChanges();
或:
如您所见,您可以在数据上下文中使用表分区
属性的InsertOnSubmit
,但也可以在公司
实体中使用实体设置分区
属性的添加
方法。他们两个做的差不多。后一种方法的优点是,您不需要将公司“链接”到新的部门,因为LINQ to SQL可以为您解决这个问题
我希望这能回答你的问题。是的,我知道我没有错。更改只发生在EntitySet的包装器上,而不会发生在集合本身上。@Pleun:对不起,您的说法是错误的。调用
Add
后,不需要InsertOnSubmit
,只需使用LINQ将其添加到SQL即可。请试一试。
var company = db.Company.Single(c => c.Id == 1);
company.Divisions.Add(new Division()
{
// other properties
});
db.SubmitChanges();