首页 > 代码库 > Linq to SQL
Linq to SQL
一,DataContext类
DataContext类是LINQ to SQL框架的主入口点。在我们使用LINQ TO SQL进行进行数据库连接时,我们一般是先建立LINQ TO SQL类,如图:
这个类就是继承DataContext类,当我们把表拖入设计视图后,与数据库关联的那些东西会自动生成。
之后,我们在使用的时候,要先实例化一个这样的类,在进行对数据库的访问时,都通过实例化的类进行操作。
二,分页示例
如下:在分页中,我们只需用我们实例化好的LinqDB对象,之后通过它的属性访问表,加上一点儿Linq基本方法,so easy就完成了分页。
protected void Page_Load(object sender, EventArgs e) { //判断是否回发 if (!Page.IsPostBack) { BinderToGridView(1,2); //默认显示第一页,每页2条数据 } } /// <summary> /// 通过linq技术实现分页数据的提取 /// </summary> /// <param name="pageSize">要显示的第几页数据</param> private void BinderToGridView(int pageIndex,int pageSize) //要显示第几页的数据,每页显示多少条 { //数据的基本显示--------下拉页数 //获取dataContext---获取映射文件---当我们队linqDB进行对象操作时候,自动生成相应的SQL语句 //DataContext:数据相关上下文类,非常重要呀!!!! /**************************************************************/ /***************DataContext类是LINQ to SQL框架的主入口点*/ /**************************************************************/ LinQDBDataContext linqDB = new LinQDBDataContext(); //定义数据上下文类 //以前我们的分页有两种方式 //数据量大的时候选择SQL语句的方式分页 //数据量不大的时候我们选择PageDataSource实现分页 //var会在执行时自动判断类型,比Object好点儿 var result = linqDB.User; //获取总页数 int pageTotal = (result.Count() + pageSize - 1) / pageSize;//比如:有6条数据,每页显示两条,则一共是3页;有7条数据,每页两条,一共是4页。。。。。自己想想吧。。 //显示页数 this.DropDownList1.DataSource = System.Linq.Enumerable.Range(1, pageTotal).ToList<int>(); //Range是生成指定范围的整数序列 //表格中显示数据要实现分页处理---跳过(pageindex-1)*pagesize条记录,然后提取pagesize条记录 this.GridView1.DataSource = result.Skip((pageIndex - 1) * pageSize).Take(pageSize); // skip & take....这里用上了吧~~· this.DataBind(); //数据绑定 } //选择了哪一页就将此页数据显示处理:此处autoPostBack应当设置为true属性,让它回发会服务器,如果未设置,则不响应; protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { //TextBox1.Text = this.DropDownList1.SelectedItem.ToString();//测试使用 BinderToGridView(int.Parse(this.DropDownList1.SelectedItem.ToString().Trim()),2); //显示选中页 }
三,注意问题
在做一个用户注册的例子中,出现了一个这样的问题:
猜测原因:可能是因为数据库中没有主见,造成实体到数据库的映射失败,我们可以手动为数据库中的表添加主键,或者在设计视图上,选择这个实体的某个属性作为主键。
Linq to SQL
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。