Chinaunix首页 | 论坛 | 博客
  • 博客访问: 873493
  • 博文数量: 372
  • 博客积分: 10063
  • 博客等级: 中将
  • 技术积分: 4220
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 11:36
文章分类

全部博文(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 list = new System.Data.Linq.EntitySet();类 来操作关联的表的插入

代码如下:

LinqToSqlDataContext ds = new LinqToSqlDataContext();
Type t = new Type();
t.Name = "测试1";
t.Parent = 0;
System.Data.Linq.EntitySet list = new 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

阅读(693) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~