Entity Framework学习笔记——EF简介(一篇文章告诉你什么是EF)

        Entity Framework是以ADO.NET为基础,面向数据的“实体框架”。以下简称EF。

        它利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象 (entity),数据字段都转换为属性 (property),关系则转换为结合属性 (association),让数据库的 E/R 模型完全的转成对象模型,如此让程序设计师能用最熟悉的编程语言来调用访问。

       个人认为百科上对EF一句比较经典的解释为:让上层的应用程序码可以如面向对象的方式般访问数据。     

       过去我们对数据库都是直接读取,业务数据中都是使用DataSet、DataTable等来传值,造成代码丑陋,严重脱离了OO的思想。

   

       举个例子,当向数据库中存储时,实体框架主要是用来帮助我们把一个个对象存储到数据库中去(即通过对象与数据库“打交道”),只要把对象交给实体框架,不用自己写SQL语句,它会帮助我们自动生成SQL语句,这里生成的SQL语句通过ADO.NET发送到数据库中去,即操作数据库还是通过ADO.NET,所以本文首句说到了“EF是以ADO.NET为基础,面向数据的‘实体框架’ ”。

        具体过程可以用下图表示:

         

        如上图,假如要把内存中的两个实体Student和Teacher存储到数据库中,EF会自动将实体通过EDM的映射,将一个实体作为一条记录存入到数据库中去,那EF是如何判断哪个实体应该存到哪张表里,哪个属性应该存到哪个字段里呢?这就是映射的强大所在:

        在VisualStudio中,映射通过  .edmx 文件来体现,.edmx文件的本质是一个 XML 文件,它用于定义概念模型、存储模型和这些模型之间的映射。

        比如在上例的映射中,可以通过类似于如下形式来体现:

<!-- CSDL 此处表示实体 -->
<Entity Name="Student">
    <Pro Name="StuName">
    <Pro Name="StuSex">
    <Pro Name="StuAge">
</Entity>

<!-- SSDL 此处表示数据库表 -->
<Table Name="Student">
    <Col Name="StuName">
    <Col Name="StuSex">
    <Col Name="StuAge">
</Table>

<!-- C-S 此处表示实体与数据库表的映射关系 -->
<Relation Entity="Student" Table="Student">
    <Rel ProName="StuName" ColName="StuName">  <!--实体中StuName属性对应表中StuName字段-->
    <Col ProName="StuSex" ColName="StuSex">    
    <Col ProName="StuAge" ColName="StuAge">
</Relation>

            上述代码并不是 .edmx文件中的确切格式,此处为了简单说明,读者可以看做是“伪代码”,后面将会简单介绍 .edmx 文件创建和基本格式。

        通过上面可以了解到,从读代码的角度来说,EF可以使我们在不需要了解数据结构的情况下就可以很好地理解;从实现的角度来说,EF可以使存储“模型化”,就如同将很多个对象存储在一个List中似的,向数据库表里存储的都是一个个实例,从数据库中取到的也都是一个个实例。程序如此跟数据库的交互,和OO化的代码相互对应,容易“对接”。

          

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 46
    评论
Entity Framework (EF) 中设置数据库文件路径需要修改连接字符串中的数据源(Data Source)部分。以下是一些步骤: 1. 打开应用程序的配置文件(App.config 或 Web.config)。 2. 在连接字符串中找到与EF相关的连接字符串。通常,连接字符串位于`<connectionStrings>`元素中。 3. 修改连接字符串的数据源(Data Source)部分以指定新的数据库文件路径。您可以使用绝对路径或相对路径。如果使用相对路径,请确保路径是相对于应用程序的运行目录。 下面是一个示例连接字符串,将数据库文件保存在应用程序的根目录下的`Data`文件夹中: ```xml <connectionStrings> <add name="MyDbContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Data\MyDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings> ``` 在上面的示例中,我们使用了`AttachDbFilename`选项来指定数据库文件的路径。`|DataDirectory|`是一个占位符,表示应用程序的数据目录。通过在连接字符串中使用这个占位符,EF将自动解析并替换为实际的数据目录。 请注意,具体的连接字符串格式可能会因所使用的数据库提供程序和配置方式而有所不同。上述示例中使用的是SQL Server数据库提供程序(System.Data.SqlClient),如果使用其他数据库(如MySQL、Oracle等),连接字符串和指定路径的选项可能会有所不同。 在运行时,EF将使用连接字符串中指定的路径创建数据库文件,并将其放在指定的路径下。如果路径无效或没有权限,将会引发异常。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值