《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射

转载于:http://blog.csdn.net/zhoukun1008/article/details/50528145

现在越来越喜欢MVC了,不光是因为ITOO中用到了他,而是因为它里面包含了很多的知识点让我们去学习,我们的ITOO在服务端用到了EF和WCF,而对于MVC来说,他也可以与EF合作操作数据库,也可以像WebForm一样为用户显示数据。下面我总结一下用DBFirst来创建实体数据库模型。

1、新建ASP.NET MVC 4 Web 应用程序

2、创建空的模板

3、创建ADO.net实体数据模型(在Model文件件下右击——>添加——>新建项——>数据——>ADO.Net实体数据模型)

4、选择来自数据的EF设计器(这里选择的就是DBFirst)

5、点击新建连接,创建新的数据连接。

6、填入服务器名称(可以是自己你的IP,也可以是自己的用户名,我这里用“.”来代替,代表本地)

7、继续点击下一步,选择实体框架的版本。

8、导入适当的表【视图、存储过程和函数】,我这里只导入了表。点击完成就OK了。

9、对象关系映射

上面的几部操作完成后,右击edmx文件,选择打开方式,用XML(文本)编辑器打开。这样,我们就可以看见数据库中的表与C#中的实体类中的数据,以及他们是如何映射的啦!

    看一下这个XML文件的主要组成吧!

首先是数据库中BlogArticleCate表的数据

  1. <EntityType Name="BlogArticleCate">
  2. <Key>
  3. <PropertyRef Name="Id" />
  4. </Key>
  5. <Property Name="Id" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
  6. <Property Name="Author" Type="int" Nullable="false" />
  7. <Property Name="Name" Type="nvarchar" MaxLength="50" Nullable="false" />
  8. <Property Name="Remark" Type="nvarchar" MaxLength="200" />
  9. <Property Name="Statu" Type="int" Nullable="false" />
  10. <Property Name="IsDel" Type="bit" Nullable="false" />
  11. <Property Name="Addtime" Type="datetime" Nullable="false" />
  12. </EntityType>

Csharp中BlogArticleCate实体类的数据

  1. <EntityType Name="BlogArticleCate">
  2. <Key>
  3. <PropertyRef Name="Id" />
  4. </Key>
  5. <Property Name="Id" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
  6. <Property Name="Author" Type="Int32" Nullable="false" />
  7. <Property Name="Name" Type="String" MaxLength="50" FixedLength="false" Unicode="true" Nullable="false" />
  8. <Property Name="Remark" Type="String" MaxLength="200" FixedLength="false" Unicode="true" />
  9. <Property Name="Statu" Type="Int32" Nullable="false" />
  10. <Property Name="IsDel" Type="Boolean" Nullable="false" />
  11. <Property Name="Addtime" Type="DateTime" Nullable="false" Precision="3" />
  12. <NavigationProperty Name="BlogArticles" Relationship="Self.FK_BlogArticle_BlogArticleCate" FromRole="BlogArticleCate" ToRole="BlogArticle" />
  13. <NavigationProperty Name="BlogUser" Relationship="Self.FK_BlogArticleCate_BlogUser" FromRole="BlogArticleCate" ToRole="BlogUser" />
  14. </EntityType>

数据库中的表与实体之间的对应关系

  1. <EntitySetMapping Name="BlogArticleCates">
  2. <EntityTypeMapping TypeName="OumindBlogModel.BlogArticleCate">
  3. <MappingFragment StoreEntitySet="BlogArticleCate">
  4. <ScalarProperty Name="Id" ColumnName="Id" />
  5. <ScalarProperty Name="Author" ColumnName="Author" />
  6. <ScalarProperty Name="Name" ColumnName="Name" />
  7. <ScalarProperty Name="Remark" ColumnName="Remark" />
  8. <ScalarProperty Name="Statu" ColumnName="Statu" />
  9. <ScalarProperty Name="IsDel" ColumnName="IsDel" />
  10. <ScalarProperty Name="Addtime" ColumnName="Addtime" />
  11. </MappingFragment>
  12. </EntityTypeMapping>
  13. </EntitySetMapping>

看看上面的对应的关系,一个实体类中的属性相对应着数据库表中的一个字段,还有他们分别在C#类中、表中各自的数据类型。正是有了上面的一一对应关系,我才明白:当我们用EF操作实体类中的数据的时候,EF为什么能将实体中“属性”的数据映射到表中的“字段”里面去的。

时间: 2024-07-30 10:15:31

《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射的相关文章

MVC、EF中,创建更加复杂的数据模型

在前面的课程中,你已经创建了一个简单的由三个实体组成的数据模型.在这个课程中,你将要增加更多的实体,以及关系,使用数据标注特性来控制模型类的行为. 在完成的时候,实体类表示的完整数据模型如下所示: 4-1 使用特性控制格式.验证以及数据库映射 在这一节中,你将会看到如何使用特性来控制数据模型的格式化.验证以及数据库映射.然后在后继的节中,将要通过为已经创建的类.新创建的类增加特性,来创建完整的 School 数据模型. 4-1-1 DisplayFormat 特性 对于学生的注册日期来说,虽然你

Visual Studio 2010缺失ADO.NET 实体数据模型解决方法

解决方法如下:1).到 Visual Studio 2010 的安装包的目录:/WCU/EFTools 中寻找如下文件 ADONETEntityFrameworkTools_chs.msi;ADONETEntityFrameworkTools_chs.cab,将它 们复制自己计算机的某一目录下,例如:X:/EF2).在这个目录下创建文本文件Log.txt(下面命令里要使用到)3).运 行:Visual Studio 命令提示(2010)工具, 访问位置:开始菜单=>Microsoft Visua

EF6.0下建立ADO.NET实体数据模型错误解决方法

最近在学习EF+MVC的过程中遇到个很奇怪的问题:EF5.0下建立ADO.NET实体数据模型可以成功,可在EF6.0下建立ADO.NET实体数据模型就报错了,下图为错误详情: 在自己的电脑里压根就找不到这个这个路径,对于EF的引用也不是在这个目录下,不懂怎么就会出现这个路径. 在网上搜了很久都没找到中文的相关资料,英文的倒是找到一篇,连接:http://forums.asp.net/t/1949811.aspx?Error+building+an+entity+model+tt+is+empty

Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源

熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软自己的SQL Server数据源,如果想使用Mysql数据源,得做一些配置. 自己得解决方案如下: 1,导入Entity Framework 6.1.3. 这个是出现ADO.NET实体数据模型选项的前提.如果没有Entity Framework包,新建项菜单中没有ADO.NET实体数据模型选项. 6

ADO.NET实体数据模型中关于数据库字段默认值的处理

无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工进行设置. 假设我们的SQL Server数据库中RegisterDate字段已设置了默认值getdate().用ADO.NET实体数据模型产生了edmx文件后,打开edmx文件,鼠标右击RegisterDate,选择属性菜单,在属性面板中修改StroreGeneratedPattern属性的值为C

[ADO.NET 实体数据模型][新建]

1. Microsoft Visual Studio 2010 >> 添加 >> 新建项 >> 数据 >> ADO.NET 实体数据模型 2. 从数据库生成 >> 下一步 3. 新建连接 4. 选择 "服务器名" >> 选择 "数据库名" >> 确定 5. 下一步 6. 选择 "表" >> 完成 备注: a) App.Config 文件必须放置在 &q

vs2010找不到ado.net 实体数据模型解决办法

vs2010找不到ado.net 实体数据模型--还原默认项目模板 一.打开vs命令提示符: 二.在命令提示符中,定位到 devenv.exe 的位置. cd  C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ 三.命令提示符输入 devenv /installvstemplates http://msdn.microsoft.com/zh-cn/library/ms247116.aspx

VS2013添加ADO.NET实体数据模型模板

最近在学习Entity Framework时,发现VS2013安装时没有ADO.NET实体数据模型模板,所以在网上查找答案.基本看到3类解决方案. A==>重新安装EFTools.msi B==>根据官方文档方案恢复默认模板 C==>卸载VS2013,重新安装 个人认为,在解决此问题时依据上面顺序试着解决问题,比较节省时间.具体操作相对容易,在此简单描述一下吧!望见谅... A==>在本地磁盘搜索文件 EFTools.msi,将v12版本的先remove再install,待安装完毕

hibernate(四)__由表逆向创建Domain对象和对象关系映射文件

之前我们是手写Domain对象和对象关系映射文件->然后生成数据库中的Table. 现在我们反过来先在数据库中建好Table->然后用工具生成Domain对象和对象关系映射文件. 步骤: 1.创建一个web工程项目 2.通过myeclipse 提供的数据库浏览器连接到我们的数据库. ①新建一个数据库连接: ②配置数据库连接(这里借用以oracle一张图,后面都是在sql server的数据库下的配置,可以忽视不影响): ③成功之后输入登录密码进入数据库: 右键表可直接修改删除表,当然这也是相当