【Entity Framework】 Entity Framework资料汇总
Fluent API :
http://social.msdn.microsoft.com/Search/zh-CN?query=Fluent%20API&Refinement=95&ac=4
http://msdn.microsoft.com/zh-cn/data/hh134698.aspx
http://msdn.microsoft.com/zh-cn/data/jj591617.aspx
http://msdn.microsoft.com/zh-cn/data/jj591620.aspx
CodeFirst:
http://www.codeproject.com/Articles/504720/EntityplusFrameworkplusCodeplusFirstplusMigrations
Understanding Database Initializers in Entity Framework Code First:
http://www.codeguru.com/csharp/article.php/c19999/Understanding-Database-Initializers-in-Entity-Framework-Code-First.htm
http://www.codeguru.com/csharp/article.php/c19233/Introduction-to-Entity-Framework-Code-First.htm
第二种:EF使用已经存在的数据库,EF的codeFirst使用已经存在的数据库,需要在配置文件中添加:
<configuration>
<connectionStrings>
<add
name="MyDB"
providerName="System.Data.SqlClient"
connectionString="Server=.\SQLEXPRESS;Database=TestDb;Trusted_Connection=true;"/>
</connectionStrings>
</configuration>
public partial class BlogContext : DbContext
{
public BlogContext():base("MyDB")
{
}
。。。。
}
codeFirst的实现机制是先去配置文件中找,是否连接字符串,有则用已经存在的数据库,无则自动创建数据库
【1】如果BlogContext():base(“”)构造函数没有传参,先去配置文件中找是否连接字符串与"命名空间.BlogContext"同名的连接字符串。如果有,用这个数据库连接,若无,创建新的名为--”命名空间.BlogContext“的数据库
【2】如果BlogContext():base(“MyDB”)构造函数传参“MyDB”,先去配置文件中找是否连接字符串与"MyDB"同名的连接字符串。如果有,用这个数据库连接,若无,创建新的名为--”MyDB“的数据库
若需要在修改一些配置:
(什么时候要添加额外的配置?
答:比如:
1.CodeFirst自动生成的表名、表字段名不满足你的命名习惯
2.用已经存在的数据库表名称,表的列名等和实体类的字段名不一样,EF就无法建立表和实体类字段的映射关系,这时需要添加配置
添加配置的方法有两种:
第一种是使用特性:例如:[key]。但是使用特性这种方法有时无法满足所有的需求,
这时就要用第二种方法FluentAPI,
还有就是想我这种有代码点洁癖的,不喜欢在POCO类添加这些特性,若以后换了ORM框架,
EF的这些特性,跟其他ORM特性就没关系了,不删代码(实体类上的EF特性),要编译通过就得引用EF程序集。而EF程序集又不是现在需要的。所以
尽量保持POCO类的洁净是件好事
第二种是使用FluentAPI
)
重写BlogContext()的方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
例如:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder
.Configurations
.Add(new UserTypeConfiguration())
.Add(new ProductTypeConfiguration())
.Add(new CategoryTypeConfiguration())
.Add(new CategorizationTypeConfiguration())
.Add(new SalesLineTypeConfiguration())
.Add(new SalesOrderTypeConfiguration())
.Add(new ShoppingCartItemTypeConfiguration())
.Add(new ShoppingCartTypeConfiguration())
.Add(new RoleTypeConfiguration())
.Add(new UserRoleTypeConfiguration());
base.OnModelCreating(modelBuilder);
}
public class UserTypeConfiguration : EntityTypeConfiguration<User>
{
#region Ctor
/// <summary>
/// Initializes a new instance of <c>CustomerTypeConfiguration</c> class.
/// </summary>
public UserTypeConfiguration()
{
HasKey(c => c.ID);
Property(c => c.ID)
.IsRequired()
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Property(c => c.UserName)
.IsRequired()
.HasMaxLength();
Property(c => c.Password)
.IsRequired()
.HasMaxLength();
Property(c => c.Email)
.IsRequired()
.HasMaxLength(); ToTable("Users");
}
#endregion
}
使用Fluent API进行了额外的配置。
【工欲善其事必先利其器】—Entity Framework实例详解:
http://www.cnblogs.com/nianming/archive/2012/11/04/2753183.html
DDD & EntiyFramework
Shrink EF Models with DDD Bounded Contexts:
http://www.nmtree.net/2014/05/09/shrink-ef-models-with-ddd-bounded-contexts.html
【Entity Framework】 Entity Framework资料汇总的更多相关文章
- Types of Entity in Entity Framework:
http://www.entityframeworktutorial.net/Types-of-Entities.aspx We created EDM for existing database i ...
- .NET Core Entity使用Entity Framework Core链接数据库
首先安装Nuget包 Install-package Microsoft.EntityFrameworkCore Install-package Microsoft.EntityFrameworkCo ...
- Entity Framework Tutorial Basics(8):Types of Entity in Entity Framework
Types of Entity in Entity Framework: We created EDM for existing database in the previous section. A ...
- EntityFramework 学习 一 Colored Entity in Entity Framework 5.0
You can change the color of an entity in the designer so that it would be easy to see related groups ...
- 【Robot Framework 】项目实战汇总
写在前面 RF自动化的文章记录基本完成,建一个汇总目录,方便查看. [Robot Framework 项目实战]汇总 ∮[RF 项目实战 00]环境搭建 ∮[RF 项目实战 01]使用 Request ...
- d3可视化实战00:d3的使用心得和学习资料汇总
最近以来,我使用d3进行我的可视化工具的开发已经3个月了,同时也兼用其他一些图表类库,自我感觉稍微有点心得.之前我也写过相关文章,我涉及的数据可视化的实现技术和工具,但是那篇文章对于项目开发而言太浅了 ...
- NUnit单元测试资料汇总
NUnit单元测试资料汇总 从安装到配置 首先到官网http://www.nunit.org/下载如下图的资料,安装NUnit-2.6.1.msi包. 然后挂在VS2010外部工具这个地方来使用,工具 ...
- iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
iOS超全开源框架.项目和学习资料汇总--数据库.缓存处理.图像浏览.摄像照相视频音频篇 感谢:Ming_en_long 的分享 大神超赞的集合,http://www.jianshu.com/p/f3 ...
- Java进阶资料汇总
Java经过将近20年的发展壮大,框架体系已经丰满俱全:从前端到后台到数据库,从智能终端到大数据都能看到Java的身影,个人感觉做后台进要求越来越高,越来越难. 为什么现在Java程序员越来越难做,一 ...
- 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
随机推荐
- 《搭建DNS负载均衡服务》RHEL6
搭建DNS负载均衡环境: 1.至少三台的linux虚拟机,一台主的DNS服务器,1台副的(可以N台),1台测试机. 负载均衡有很多种,apache那样的是为了缓解人们访问网站时给服务器造成太大的压力, ...
- Berkeley DB
最近用BDB写点东西,写了挺多个测试工程.列下表,也理清楚最近的思路 1.测试BDB程序,包括打开增加记录,查询记录,获取所有记录.将数据转存mysql 程序的不足,增加记录仅仅只有key和value ...
- PHP获取Cookie模拟登录CURL
要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了.利用抓包数据发现,Google 判断了 cookie ...
- 解决DataSnap支持的Tcp长连接数受限的两种方法
如何解决DataSnap支持的Tcp长连接数受限的问题? 方案一: 采用代理服务器方式,基本流程为: 1.客户先连接代理服务器:2.获取可用的服务器IP和端口:3.关闭与代理服务器之间的连接:4.建立 ...
- 绘制dot 图
常用参数 格式:dot -T<type> -o<outfile> <infile.dot> 输入文件是<infile.dot>,生成的格式由<ty ...
- linux信号量之进程间同步
概念 linux信号量: 允许多个线程同时进入临界区,可以用于进程间的同步. 和互斥锁(mutex)的区别: 互斥锁只允许一个线程进入临界区. 所在头文件: semaphore.h 主要函数 初始化函 ...
- 【jquery】 API讲解 内部培训资料
资料在百度云盘 一.jquery API讲解 1.jquery api如何使用 jquery api http://www.hemin.cn/jq/ 2.常用api讲解 选择器: 通过$()获取 ...
- iOS的SandBox的结构研究
在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox).首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2.想要找到沙盒目录,先运行Finder,然后在 ...
- JPages分页插件的使用
废话不多说,直接上代码. 首先下载JPages的js和css包,附上下载地址:http://dl.oschina.net/softfile/jpages/jpages-latest-138554713 ...
- sharepoint 2010
Technical diagrams (SharePoint Server 2010) http://technet.microsoft.com/en-us/library/cc263199(offi ...