《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表的数据
- <EntityType Name="BlogArticleCate">
- <Key>
- <PropertyRef Name="Id" />
- </Key>
- <Property Name="Id" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
- <Property Name="Author" Type="int" Nullable="false" />
- <Property Name="Name" Type="nvarchar" MaxLength="50" Nullable="false" />
- <Property Name="Remark" Type="nvarchar" MaxLength="200" />
- <Property Name="Statu" Type="int" Nullable="false" />
- <Property Name="IsDel" Type="bit" Nullable="false" />
- <Property Name="Addtime" Type="datetime" Nullable="false" />
- </EntityType>
Csharp中BlogArticleCate实体类的数据
- <EntityType Name="BlogArticleCate">
- <Key>
- <PropertyRef Name="Id" />
- </Key>
- <Property Name="Id" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
- <Property Name="Author" Type="Int32" Nullable="false" />
- <Property Name="Name" Type="String" MaxLength="50" FixedLength="false" Unicode="true" Nullable="false" />
- <Property Name="Remark" Type="String" MaxLength="200" FixedLength="false" Unicode="true" />
- <Property Name="Statu" Type="Int32" Nullable="false" />
- <Property Name="IsDel" Type="Boolean" Nullable="false" />
- <Property Name="Addtime" Type="DateTime" Nullable="false" Precision="3" />
- <NavigationProperty Name="BlogArticles" Relationship="Self.FK_BlogArticle_BlogArticleCate" FromRole="BlogArticleCate" ToRole="BlogArticle" />
- <NavigationProperty Name="BlogUser" Relationship="Self.FK_BlogArticleCate_BlogUser" FromRole="BlogArticleCate" ToRole="BlogUser" />
- </EntityType>
数据库中的表与实体之间的对应关系
- <EntitySetMapping Name="BlogArticleCates">
- <EntityTypeMapping TypeName="OumindBlogModel.BlogArticleCate">
- <MappingFragment StoreEntitySet="BlogArticleCate">
- <ScalarProperty Name="Id" ColumnName="Id" />
- <ScalarProperty Name="Author" ColumnName="Author" />
- <ScalarProperty Name="Name" ColumnName="Name" />
- <ScalarProperty Name="Remark" ColumnName="Remark" />
- <ScalarProperty Name="Statu" ColumnName="Statu" />
- <ScalarProperty Name="IsDel" ColumnName="IsDel" />
- <ScalarProperty Name="Addtime" ColumnName="Addtime" />
- </MappingFragment>
- </EntityTypeMapping>
- </EntitySetMapping>
看看上面的对应的关系,一个实体类中的属性相对应着数据库表中的一个字段,还有他们分别在C#类中、表中各自的数据类型。正是有了上面的一一对应关系,我才明白:当我们用EF操作实体类中的数据的时候,EF为什么能将实体中“属性”的数据映射到表中的“字段”里面去的。
《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射的更多相关文章
- Visual 2015创建新项,缺少ADO.NET 实体数据模型的解决方法
现在的某度查资料真的很麻烦,突然我自身的VS2015创建EF的时候找不到 ADO.NET 实体数据模型,但是使用CodeFrist是可以生成数据表的.所有特别郁闷. 打开界面如下 某度半天,都没有查出 ...
- Model First:创建实体数据模型(ADO.NET 实体数据模型)
Microsoft Entity Framework是一个对象关系映射工具(Object Relational Mapping ,O/RM)工具.它可以让你从一个数据库自动地生成数据接入层.实体框架免 ...
- vs212创建mvc3项目,添加ADO.NET实体数据模型时产生 XXXX.Desiger.cs 文件为空
vs212创建mvc3项目,发现添加ADO.NET实体数据模型时,产生StoreDB.Desiger.cs文件为空 产生StoreDB.Desiger.cs文件为空 原因是,在vs2012中,添加AD ...
- 连接SQLite 创建ADO.net实体类
0.开发环境 win10,vs2013-x64 1.安装: sqlite-netFx451-setup-bundle-x86-2013-1.0.102.0.exe 注意事项:选在VisualStudi ...
- Entity Framework (EF) Core工具创建一对多和多对多的关系
一. EntirtyFramework(EF)简介 EntirtyFramework框架是一个轻量级的可扩展版本的流行实体框架数据访问技术,微软官方提供的ORM工具让开发人员节省数据库访问的代码时间 ...
- ADO.NET实体数据模型使用探索1
今天研究了下ADO.NET实体数据模型,想写个关于两张有外键关系的增改删查,以此来稍增加点难度. 编程环境:vs2010+sql2005 1.在SQL2005下建立三张表:学生信息表Student(S ...
- Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源
熟悉Entity Framework应该对以下图片不陌生,他就是ADO.NET实体数据模型向导:可以将数据库的表自动生成模型类,或者创建Code First的模型文件. 但是这个模型向导默认只显示微软 ...
- ADO.NET实体数据模型中关于数据库字段默认值的处理
无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工 ...
- Visual Studio2017中如何让ADO.NET实体数据模型[EntityFramework]支持MariaDB&MySQL数据源
近期由于工作需要,需要重新修改设计系统的ADO.NET实体数据模型.edmx文件中间,在完成实际中途遇到一些实际使用问题,特此记录. 1. Visual Studio 2017 无法以实体设计模式打开 ...
随机推荐
- Wookmark-jQuery-master 瀑布流插件使用介绍,含个人测试DEMO
要求 必备知识 本文要求基本了解 Html/CSS, JavaScript/JQuery. 开发环境 Dreamweaver CS6 / Chrome浏览器 演示地址 演示地址 资料下载 测试预 ...
- Shell脚本 | 抓取log文件
在安卓应用的测试过程中,遇到 Crash 或者 ANR 后,想必大家都会通过 adb logcat 命令来抓取日志定位问题.如果直接使用 logcat 命令的话,默认抓取出的 log 文件包含安卓运行 ...
- linux-程序发布脚本
写了个启动程序, 调优jvm的脚本 #!/bin/bash MEM=`free -m | grep Mem | awk '{print int($2 * 90 / 100)}'` JAVA_OPTS= ...
- jmeter安装教程与新手入门(附jdk安装教程)
一.前言 最近要对网站做性能测试,提到了并发数测试,查了下,还是决定使用jmeter来完成这项测试,这里总结了jmeter完整的安装教程,附上新手使用教程. 二.jmeter安装 1.jdk安装(jm ...
- SpringMvc RequestMappingHandlerMapping
RequestMappingHandlerMapping是SpringMvc中一个比较核心的类,查看下它的类结构图: InitializingBean是个很神奇的接口,在Spring每个容器的bean ...
- AngularJS学习笔记(四)内置指令
说说指令 不得不赞叹,指令是ng最为强大的功能之一,好吧,也可以去掉之一,是最强大的功能.ng内置了许多自定义的指令,这避免了我们自己去造轮子.同时,ng也提供了自定义指令的功能,可以让我们的页面元素 ...
- [编程] TCP协议概述
TCP 协议概述 1.TCP提供一种面向连接的.可靠的字节流服务. 2.两个应用程序通过TCP连接交换8bit字节构成的字节流. 3.每个TCP首部都包含源端和目的端的端口号,用于寻找发端和收端应用进 ...
- 第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数
第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; ...
- oracle 备份数据库,导出数据库
导出数据库 exp hljslfh2/hljslfh@dbsvr file=d:\hljslfh2Of0426.dmp 导入数据库 imp hljslfh2/hljslfh@localhost/dbs ...
- 自定义一个可以动态折叠的UITAbleViewCell
看到code 4APP上有一个折叠的UITAbleViewCell,不过是swift的,所以自己尝试做一个简单的可折叠的UITAbleViewCell 主要实现一个可以折叠的UITAbleViewCe ...