Linq
高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名
数据库数据访问,能大大减少代码量。(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好的方法直接点就行了)
(1)Linq创建
添加LINQ to SQL类,类名需与要连接的数据库名一样

Linq文件是dbml结尾,一个数据库对应一个Linq文件,比如送你要连接data0720这个数据库,linq的名字也取data0720
(2)数据库连接
打开服务器资源管理器,点击下图黄圈内按钮,连接到数据库,弹出添加连接对话框,填写服务器名(.),选择使用什么身份验证,然后您要连接的数据库,然后将您要用的数据库拉到类中。(这里就相当于ado.Net里的连接语句)

(3)数据扩展

新建一个部分类(关键字:partial),例如User

public string SexStr
    {
        get
        {
            string end = "<暂无>";//只是从严谨的角度讲,数据库里不一定填写,数据创建时是not null的话大概就不用写了吧...
            if (this._Sex != null)
            {
                end = Convert.ToBoolean(this._Sex) ? "男" : "女";
            }
            return end;
        }
    }
    public string NationName
    {
        get
        {
            return this.Nation1.NationName;//这里这个Nation1是因为自动生成时重名而导致的。
                         //这里分开写的话就是 Nation n= this.Nation1; return n.NationName; }                   //这个数据库里的中User表中的Nation被Nation表约束,根据主外键关系可以不用再单独写查询方法(当然写也可以,亲测)
   }
public string BirStr
{
  get {
      string end = "<暂无>";
      if(this._Birthday!=null)
        {
          end = Convert.ToDateTime(this._Birthday).ToString("yyyy年MM月dd日");
        } return end;
    }
} User数据扩展

  

(4)增删改查

首先实例化:

 WebDataContext con = null;//Web为建的Linq类名(也就是数据库的名字,因为他俩名字一样)
2     public UserData()
3     {
4         con = new WebDataContext();
5     }

一、查所有

  public List<User> Select()  {  return con.User.ToList(); } //User为对象名,即表名,下同。这里相当于遍历了Users表里的所有数据添加进一个泛型集合里

 二、添加

1 public void Insert(User u)
2 {
3 con.User.InsertOnSubmit(u);
4 con.SubmitChanges();//执行了这句话才完成了对数据库数据的变更
5 }

 三、查一条

 public User Select(string uname)
    {
        return con.User.Where(r => r.UserName == uname).FirstOrDefault();//lamdba表达式这里就可以理解为是一个查询语句,where之后是查询条件,r就是个代号,可以随便起
    }

四、删除

public void Delete(string uname)
    {
        //1先将对象查出来
        User u = con.User.Where(r => r.UserName == uname).FirstOrDefault();

        //2删掉
        if (u != null)
        {
            con.User.DeleteOnSubmit(u);
            con.SubmitChanges();
        }
    }

五、修改

 public void Update(User u)
    {
        User uuu = con.User.Where(r => r.UserName == u.UserName).FirstOrDefault();//先查后改
        if (uuu != null)
        {
            uuu.PassWord = u.PassWord;
            uuu.NickName = u.NickName;
            uuu.Sex = u.Sex;
            uuu.Birthday = u.Birthday;
            uuu.Nation = u.Nation;
        }

        con.SubmitChanges();

    }
posted on 2016-11-06 23:04  懒人起烂名  阅读(2972)  评论(0编辑  收藏  举报