微软象关系对应(O/R Mapping)

Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。

Entity Framework的主要特点:

1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2);

2. 强劲的映射引擎,能很好地支持存储过程;

3. 提供Visual Studio集成工具,进行可视化操作;

4. 能够与ASP.NET, WPF, WCF, WCF Data Services进行很好的集成。

EntityFramework Code First FluentAPI DefaultValue in EF6.X

2017年02月04日

使用的是EF 6.0,采用Data Annotations的下列两种方式都效果,不知道还有没有别的书写方式?方式1:public partial class MyModel{ [DefaultValue(0)] public int Field1 { get; set; }}方式2:public partial class MyModel{ public MyModel {...

Entity Framework数据库迁移

2017年01月03日

现在我们准备创建数据库了,如果在本地工作,只是创建或者更新本地数据库,那么我们在包管理器控制台中执行Update-Database命令,还有,可以使用Get-Help命令查看可以使用的参数(后面不再啰嗦这个命令)。下面,我们对-script参数感兴趣,该参数很有用,因为它可以生成迁移的SQL脚本,我们可以将该脚本交给DBA或者我们自己运行。当运行Update-Database命令时,它会比较实体类...

Entity Framework一对多关系

2017年01月03日

要在数据库中配置一对多关系,我们可以依赖EF约定,或者可以使用数据注解/fluent API来显式创建关系。接下来我以网站上常见的评论与回复的例子来说明一对多关系。一个评论可能有多个回复,象下面这样:下面是评论的数据表的定义: public partial class Comment { public int Id { get; set; } publ...

.Net类型和SQL类型之间的映射

2017年01月03日

EF这个ORM工具就是用来解决.NET 类型和SQL Server列类型之间的阻抗失配的问题。比如,假设你在.net中定义了一个int类型的属性,那么你就可以认为EF已经安全地处理这个列的定义并使用了合适的类型与之对应。记住一些.Net类型和SQL Server列类型之间的映射是很有必要的,下面是一些最常用的映射关系:完整的映射列表可以参考MSDN SQL Server数据类型映射,如果你使用的其...

Entity Framework数据库初始化策略

2016年12月15日

数据库创建是由策略来控制的,有如下四种策略:1. CreateDatabaseIfNotExists:这是默认的策略。如果数据库不存在,那么就创建数据库。但是如果数据库存在了,而且实体发生了变化,就会出现异常。2. DropCreateDatabaseIfModelChanges:此策略表明,如果模型变化了,数据库就会被重新创建,原来的数据库被删除掉了。3. D...

Entity Framework 实体关系总结

2016年12月15日

为什么要写文章来理清这些关系?“血”的教训啊,刚开始使用 Entity Framework 的时候,由于没有静下心来认真理清关系,走了一些"痛不欲生"的弯路。而我们目前开发的项目都在使用 Entity Framework,为了避免其他人再经历"痛不欲生"的弯路。于是下定决心边“理清关系”边“写博客”。而写博客可以逼着自己把问题完整地解决,避免半途而废。当写出这些文章,自己不知不觉对问题有了更深的理...

linq查询时间区间

2016年11月13日

使用linq查询一个时间段里面的记录代码如下:var start=DateTime.Parse(DateTime.Now.AddMonth(-3).ToString("yyyy-MM-dd"));var end=DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"));ctx.Tables.Where(t=>t.CreateTim...

在应用程序配置文件中找不到名为" " 的连接字符串

2016年11月13日

DbContext上下文的模型已在数据库创建后发生更改,请考虑使用 Code First 迁移更新数据库。我使用了 “Enable-Migrations” 命令进行迁移,但是抛出:在应用程序配置文件中找不到名为“ ”的连接字符串。截图:解决方案: