EF6基本使用总结

           JAVA开发的人员对面相对象应该非常熟悉,C#也一样,为什么今天讲EF我要先说JAVA呢?因为C#同JAVA一样,都是面相对象的开发语言,因为JAVA较早,并且JAVA开源,所以JAVA当中的框架较多,所以我们拿JAVA来举例子,在JAVA当中,为了实现数据的面相对象开发,出现了间接实现方式ORM,ORM就是对象关系映射,这方面的框架有很多,比如hibernate,mybatis,openipa等很多成熟的框架,那么在C#当中是不是也存在这样一个框架呢?答案是肯定的那就是ENTITY FRAMEWORK,这个框架实现了在C#中通过ORM的方式来对对象进行相应的增,删,改,查。

            一般ORM架构无非是面向对象方式进行增,删,改,查,以及原始的复杂SQL执行,EF这两种方式都满足,下面我们就来详细说一下这两种编程方式。这两种方式都需要DBContext类,第一种很简单,稍后看代码就可以。我们主要说说第二种。

原始SQL执行主要需要两个类:

1.Database.SqlQuery

2.Database.ExecuteSqlCommand

这两个类,上面的主要是执行查询语句,下面的执行DDL和DML,是不是很清楚,接下来通过一些代码会理解起来更直观。

using Oracle.DataAccess.Client;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.Objects;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EFDemo
{
    class Program
    {
        public static void Main(string[] args)
        {
            EFDemoContext _context = new EFDemoContext();
            T_BD_ORGUSER _user = new T_BD_ORGUSER();
            //新增
            _user.FUSERID = 101001;
            _user.FUSERNAME = "地主老财";
            _user.FAGE = 20;
            _context.T_BD_ORGUSER.Add(_user);
            _context.SaveChanges();
            //修改
            _user = _context.T_BD_ORGUSER.Where(s => s.FUSERID == 123456).First<T_BD_ORGUSER>();
            _user.FAGE = 30;
            _context.Entry<T_BD_ORGUSER>(_user).State = System.Data.EntityState.Modified;
            _context.SaveChanges();
            //删除
            _user = _context.T_BD_ORGUSER.Where(s => s.FUSERID == 123456).First<T_BD_ORGUSER>();
            _context.Entry<T_BD_ORGUSER>(_user).State = System.Data.EntityState.Deleted;
            _context.SaveChanges();
            //使用原始SQL语句查询
            _user = _context.T_BD_ORGUSER.SqlQuery("select * from t_bd_orguser t where t.fuserid=123456").First<T_BD_ORGUSER>();
            List<T_BD_ORGUSER> _lis_obj = new List<T_BD_ORGUSER>();
            _lis_obj=_context.Database.SqlQuery<T_BD_ORGUSER>("select * from t_bd_orguser t where t.fuserid=123456").ToList<T_BD_ORGUSER>();
            foreach (T_BD_ORGUSER aaa in _lis_obj)
            {
                System.Console.WriteLine(aaa.FUSERNAME);
            }
            //使用原始SQL语句执行更新
            StringBuilder sql_obj = new StringBuilder();
            sql_obj.AppendFormat("update t_bd_orguser t set t.fage=36 where t.fuserid={0}",123456);
            var aa = _context.Database.ExecuteSqlCommand(sql_obj.ToString());
            System.Console.WriteLine(aa);
        }
    }
}

通过以上例子是不是一看就懂,这些都是比较浅的,如果想要网深入一点,那你就需要继续深入研究一下代码,后续会继续更新相应的讲解,如有疑问请留言。

每天更新一点新知识,知识不是瞬间学会的,而是日积月累形成的,短期学会的是知道,长期积累的是知识。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF (Windows Presentation Foundation) 是一种用于创建 Windows 桌面应用程序的技术,而 SQLite 则是一种轻量级的关系型数据库系统。EF (Entity Framework) 是一种对象关系映射 (ORM) 框架,使开发人员可以使用面向对象的代码来操作数据库。 在 WPF 应用程序中使用 SQLite 数据库,可以使用 EF 来简化数据访问过程。以下是在 WPF 应用程序中使用 SQLite 和 EF基本步骤: 1. 安装 SQLite 数据库和 EF。 2. 在 WPF 应用程序中添加对 EF 和 SQLite 的引用。 3. 创建一个 DbContext 类,该类继承自 DbContext 并包含对 SQLite 数据库的连接。 4. 在 DbContext 类中定义 Entity 类,这些类映射到 SQLite 数据库中的表。 5. 使用 DbSet 属性将 Entity 类添加到 DbContext 类中。 6. 在 WPF 应用程序中使用 DbContext 类来访问 SQLite 数据库。 示例代码: 首先,我们需要安装 SQLite 和 EF。可以使用 NuGet 包管理器来安装它们。 然后,我们创建一个 DbContext 类来连接 SQLite 数据库。以下是一个简单的 DbContext 类示例: ``` using System.Data.Entity; public class MyDbContext : DbContext { public MyDbContext() : base("name=MyConnectionString") { } public DbSet<Customer> Customers { get; set; } } ``` 在上面的代码中,我们定义了一个名为 MyDbContext 的 DbContext 类,并在构造函数中指定了连接字符串。然后,我们定义了一个 DbSet 属性,该属性表示与 Customer 表对应的 Entity 类。 接下来,我们需要定义一个 Entity 类来映射到 SQLite 数据库中的表。以下是一个简单的 Customer 类示例: ``` public class Customer { public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } } ``` 在上面的代码中,我们定义了一个名为 Customer 的 Entity 类,并包含三个属性:Id、Name 和 Address。 现在,我们可以在 WPF 应用程序中使用 MyDbContext 类来访问 SQLite 数据库。以下是一个简单的示例: ``` using (var context = new MyDbContext()) { var customer = new Customer { Name = "John Smith", Address = "123 Main St" }; context.Customers.Add(customer); context.SaveChanges(); } ``` 在上面的代码中,我们创建了一个新的 Customer 对象,并将其添加到 MyDbContext 类中的 Customers DbSet 属性中。然后,我们调用 SaveChanges 方法将更改保存到 SQLite 数据库中。 总结: 在 WPF 应用程序中使用 SQLite 和 EF 可以简化数据访问过程,使开发人员可以使用面向对象的代码来操作数据库。可以通过创建一个 DbContext 类和定义 Entity 类来实现这一点,然后在 WPF 应用程序中使用 DbContext 类来访问 SQLite 数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值