C#ORM(关系对象映射)的框架

一、关于ORM

ORM的概念:

 对象关系映射(Object Relationsl Mapping,简称ORM,或O/RM,或O/R mapping),是一种技术,用于实现面向对象编程语言里不同类型系统数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

ORM的优势:实现快速开发,方便移植数据库。

.NET开发中的ORM框架:

 NHibernate 、MyBatis.NET 、LINQ to SQL(已经不再使用) 、 ADO.NET Entity Framework

下面是ORM的工作原理图:

 

二、下面是Entity-Framework体系结构总览:

三、Entity Client与ADO.NET

Entity Client(实体代理)概念及作用:

   概念:Entity Framework实现了一套类似与ADO.NET中的数据库操作类,这些操作类成为Entity Client。

   作用:用来操作EDM(实体数据模型)

Entity Client与ADO.NET对比:

    ADO.NET的连接类型是向数据库发送SQL命令操作表或视图,Entity Client是向EDM发送Entity SQL。

    Entity Client通过Entity Connectim 、Entity Command等类进行模拟ADO.NET,有自己的SQL语句。

    Entity Client将查询转交给数据库提供者ADO.NET Provider,并由数据库提供者翻译位SQL语句。

   ADO.NET Provider:

        作用:翻译成SQL语句,用来访问数据库。

         说明:Entity Framewok是ADO.NET的一个技术子集。

     下面是工作原理图:

         

   注意:我们是通过EntityClient操作CSDLàMSLàSSDLàADO.NETProvideràDatabase;

 四、基于Entity Framework实现增、删、查、改 代码例子:

         1、增:

           static void Main(string[] args)

        {

            Students objStudent = new Students()

                     {

                        StudentName = "张良",  

               Age = 18,

               Gender = "男",

               PhoneNumber = 13600709394

                     };

                     EFDBEntities efdb = new EFDBEntities();

                     efdb.Students.Add(objStudent);

                     int result = efdb.SaveChanges();

                    

                     Console.Writeline(result);

                     Console.ReadLine();

        }

       2、删除:

               static void Main(string[] args)

        {

            //创建数据库上下文对象

                     EFDBEntities efdb = new EFDBEntities();

                   Students objStudent = efdb.Students.FirstOrDefault(s => s.StudentId == 100015);

                     //从集合中删除对象

                     efdb.Students.Remove(objStudent);

                     int result = efdb.SaveChanges();

                    

                     Console.Writeline(result);

                     Console.ReadLine();

        }

      3、查询:

             static void Main(string[] args)

        {

            //创建数据库上下文对象

                     EFDBEntities efdb = new EFDBEntities();

                    

                     //首先找到要修改的对象

                     IQueryable<Students> query = efdb.Students.Where(s => s.StudentId > 100015);

                      

                      foreach(var item in query)

                      {

                         Console.Writeline("{0}\t{1}\t{2}",item.StudentId, item.StudentName,item.Age);

                      }

                     Console.ReadLine();

        }

     4、修改:

            static void Main(string[] args)

        {

            //创建数据库上下文对象

                     EFDBEntities efdb = new EFDBEntities();

                     //首先找到要修改的对象

                   Students objStudent = efdb.Students.FirtOrDefault(s => s.StudentId == 100015);

                      //在此写修改各个属性值

                      objStudent.StudentName = "张红利";

                      objStudent.Age = 20;

                      int result = efdb.SaveChanges();

                      Console.Writeline(result);

                      Console.ReadLine();

        }

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,常见的ORM框架有Entity Framework、NHibernate、Dapper等,这里以Entity Framework为例,介绍如何访问SQL Server实例。 1. 安装Entity Framework 首先,需要在Visual Studio中安装Entity Framework。打开NuGet包管理器控制台,执行以下命令: ``` Install-Package EntityFramework ``` 2. 配置连接字符串 在App.config或Web.config文件中,需要配置SQL Server数据库的连接字符串,例如: ``` <connectionStrings> <add name="MyDbContext" connectionString="Data Source=localhost;Initial Catalog=test;User ID=root;Password=123456;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" /> </connectionStrings> ``` 其中,`Data Source`指定了SQL Server实例的主机名,`Initial Catalog`指定了数据库名称,`User ID`和`Password`分别为数据库用户名和密码。 3. 创建实体类 使用Entity Framework需要创建实体类,实体类映射到数据库中的表。例如: ``` public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } ``` 其中,`Id`属性为主键,类型为int,`Name`和`Age`属性分别为姓名和年龄,类型为string和int。 4. 创建DbContext类 使用Entity Framework需要创建DbContext类,DbContext类表示数据库上下文,包含了所有实体类与数据库表之间的映射关系。例如: ``` public class MyDbContext : DbContext { public DbSet<User> Users { get; set; } public MyDbContext() : base("name=MyDbContext") { } } ``` 其中,`DbSet`表示一个实体集,`Users`属性表示User实体类对应的数据库表。`MyDbContext`类继承自`DbContext`类,调用基类的构造函数时,传入连接字符串的名称。 5. 使用DbContext进行数据库操作 在C#代码中,可以使用DbContext对象进行数据库操作,例如: ``` using (var db = new MyDbContext()) { var user = new User { Name = "张三", Age = 20 }; db.Users.Add(user); db.SaveChanges(); } ``` 使用`using`语句创建`MyDbContext`对象,然后创建`User`对象并添加到`Users`属性中,最后调用`SaveChanges`方法提交更改。Entity Framework会自动将实体类与数据库表之间的映射关系转换为SQL语句,执行数据库操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值