linq的简单增删改查

时间:2023-01-26 08:27:26

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

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

linq的简单增删改查

(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(); }