.net之EF框架学习

来源:互联网 发布:赌博知乎 编辑:程序博客网 时间:2024/05/03 15:03
1、EF(Entity Framework)
实体框架EF是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。

2、什么是ORM?
ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的互相转换。
(表实体跟表之间的相互转换)
ORM框架有很多,EF框架是ORM框架的其中一种,是实现了ORM思想的框架。

O=>表实体
M=>映射关系

R=>数据库.表


提示:需要ADO.Net实体模型

 TextDBEntities tn = new TextDBEntities();//我的表为Text

查询方法:

//方法一            //list = tn.Users.Where(a => (string.IsNullOrEmpty(UserNames) || a.UserName == UserNames) && (string.IsNullOrEmpty(Number) || a.Number == Number) && (types == 0 || a.chexTtype == types)).ToList();            //方法二            var list = (from it in tn.Users                    where (string.IsNullOrEmpty(UserNames) || it.UserName == UserNames) &&                    (string.IsNullOrEmpty(Number) || it.Number == Number) &&                    (types == 0 || it.chexTtype == types)                    select it).ToList();            return list;            //方法三            //List<SqlParameter> Ulist = new List<SqlParameter>();            //if (UserNames==null)            //{            //    UserNames = "";            //}            //if (Number == null)            //{            //    Number = "";            //}            //Ulist.Add(new SqlParameter("@UserNames", "%" + UserNames + "%"));            //Ulist.Add(new SqlParameter("@Number", "%" + Number + "%"));            //list = tn.Database.SqlQuery<Users>("select * from Users where UserName like @UserNames and Number like @Number", Ulist.ToArray()).ToList();



删除方法:
 <span style="white-space:pre"></span>//删除一            //tn.Database.ExecuteSqlCommand("delete Users where id=@id",new SqlParameter("@id",id));            //删除二            //Users u = tn.Users.Where(a => a.Id == id).FirstOrDefault();            //tn.Users.Remove(u);            //删除三            Users u = new Users() { Id = id };            //tn.Users.Remove(u);//注意:这种直接集合方法不可以            tn.Entry<Users>(u).State = System.Data.EntityState.Deleted;            tn.SaveChanges()


更新方法:
//更新一            //tn.Database.ExecuteSqlCommand("update  Users set UserName=@UserName,Number=@Number,chexTtype=@chexTtype,Class=@Class where Id=@Id",             //                                new SqlParameter("@UserName", us.UserName),            //                                new SqlParameter("@Number", us.Number),            //                                new SqlParameter("@chexTtype", us.chexTtype),            //                                new SqlParameter("@Class", us.Class),            //                                new SqlParameter("@Id", us.Id));            //更新二            //Users u = tn.Users.Where(a => a.Id == us.Id).FirstOrDefault();            //u.UserName = us.UserName;            //u.Number = us.Number;            //u.chexTtype = us.chexTtype;            //u.Class = us.Class;            //把状态改为修改            //tn.Entry<Users>(u).State = System.Data.EntityState.Modified;            //更新三 (如果不传就会变成NUll)            //Users u = new Users();            //u.Id = us.Id;            //u.UserName = us.UserName;            //更新四            Users u = new Users();            u.Id = us.Id;            u.UserName = us.UserName;            u.Number = us.Number;            u.chexTtype = us.chexTtype;            u.Class = us.Class;            var needen = tn.Entry<Users>(u);            needen.State = System.Data.EntityState.Unchanged;            tn.Entry<Users>(u).State = System.Data.EntityState.Modified;//表示我的model没有发生变化            needen.Property("UserName").IsModified = true;            needen.Property("Number").IsModified = true;            needen.Property("chexTtype").IsModified = true;            needen.Property("Class").IsModified = true;            tn.SaveChanges();            


0 0