.net之EF框架学习

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值