LINQ TO SQL 详细操作

DataClasses1DataContext dbc = new DataClasses1DataContext();

          this.GridView1.DataSource = from p in dbc.NewsContent  from c in dbc.NewsTitle where c.NewsId < 30  where c.NewsId==p.NewsId select p;//可以直接用Linq进行然后都数据进行绑定,但要注意的是LINQ是延迟查询的,所以有时候要对Linq To sql语句进行toList进行保存,避免重复进行查询。

          var content = from p in dbc.NewsContent where p.NewsId == 1 select p;//进行该类查询,返回值都是IQueryable<T>,是一个集合类,可进行遍历。也可以写成下面这种形式,但没必要,理解就好,var会做判断

            IQueryable<WebApplication2.NewsContent> contents = from p in dbc.NewsContent where p.NewsId == 1 select p;

     更新操作: 

          var ss = dbc.NewsContent.Single(s => s.NewsId == 1); //只返回一个元素,不可以遍历或做数据绑定。

          contents.NewsContent1 = contents.NewsContent1 + "chenyisi";//数据修改

           dbc.SubmitChanges();//数据提交更新

    存储过程:

 

          var lo = dbc.IsLogin("chenyisi", " ? ? ??v! ?%?I+");//这是执行一个存储过程,其实返回值的类型就                                是 System.Data.Linq.ISingleResult<T>泛型,

返回值会是在存储过程名字加Result    System.Data.Linq.ISingleResult<IsLoginResult> u = lo;//进行类型转换

        删除操作:

        PhoneDataClassesDataContext db = new PhoneDataClassesDataContext();

        var deleteItem=from c in db.NewsContent where c.NewsId==73 select c;//from c....这是返回集合的

        db.NewsContent.DeleteAllOnSubmit(deleteItem);//DelectAllOnSubmit是用于删除集合的,返回类型为IQueryable<T>的。

       var deleteOne = dbc.NewsContent.Single(s => s.NewsId == 1); 

       db.NewsContent.DeleteOnSubmit(deleteOne);//删除单项

        db.SubmitChanges();//保存修改

        获取整张表:

 

      System.Data.Linq.Table<NewsContent> newsContent=db.GetTable< NewsContent>();

      System.Text.StringBuilder str = new System.Text.StringBuilder();

      foreach (var c in newsContent)

      {

          str.Append(c.NewsId + "__" + c.NewsContent1+"/////////");

      }

     一些执行方法:

    IEnumerable<T> ExecuteQuery<T>(string sql,params object[] par);//执行查询的SQL操作。

    int  ExecuteCommand();//插入、修改、删除

   var ss = from d in db.NewsContent where d.NewsId < 10 select d;

     foreach (var s in ss)

     {

         s.NewsContent1 += "更新追加";

     }

    ChangeSet cs=db.GetChangeSet();//获取更新对象的集合

 

     foreach (NewsContent c in cs.Updates)     {

        Response.Write(c.NewsContent1);

     }

posted @ 2015-03-12 20:45  yisic  阅读(219)  评论(0)    收藏  举报