全部博文(372)
2012年(372)
分类: 虚拟化
2012-03-15 21:19:27
在linq to sql 中,设计器提供了很强大的功能,自动生成表结构,表实例,并且还能把存储过程生成为新的函数实例,
下面就简单介绍下上面说的几个功能:
1,单个表插入数据,
实例化linq设计器生成的一个表的实例,然后InsertOnSubmit(t); ds.SubmitChanges(); 即可;
具体代码如下:
LinqToSqlDataContext ds = new LinqToSqlDataContext();
Type t = new Type();
t.Name = "测试1";
t.Parent = 0;
ds.Type.InsertOnSubmit(t);
ds.SubmitChanges();
2,多表关联插入,含有主外键
此时的插入组成一个简单的事务,linq 提供了 System.Data.Linq.EntitySet
代码如下:
LinqToSqlDataContext ds = new LinqToSqlDataContext();
Type t = new Type();
t.Name = "测试1";
t.Parent = 0;
System.Data.Linq.EntitySet
for (int i = 0; i < 10; i++)
{
Admin a = new Admin();
a.Name = "测试1人名" + i;
list.Add(a);
}
t.Admin = list; //把第二个表的实例组成System.Data.Linq.EntitySet
ds.Type.InsertOnSubmit(t);
ds.SubmitChanges(); //提交这个请求(这个请求会自动组合成一个事务)
3,存储过程,
会自动生成一个函数,这个函数的实例在默认情况下会是这个返回数据的字段的集合,
需要声明一点,由于存储过程默认是返回 1 OR 0 的;所以在存储过程里含有 Into #Table 的时候Linq 设计器是不会分辨出来
需要返回的是实例是什么,这时候生成的函数的返回值就变成了默认的int