Entity Framework 项目使用心得
在博客园很久了,一直只看不说,这是发布本人的第一个博客。
总结一下在项目中,EntityFramework使用的一下经验拿来和大家分享,希望对大家有用~
1、 在Entity Framework中使用事务
1) TransactionScope
using (BlogDbContext context =new BlogDbContext())
{
using (TransactionScope transaction =new TransactionScope())
{
context.BlogPosts.Add(blogPost);
context.SaveChanges();
postBody.ID = blogPost.ID;
context.EntryViewCounts.Add(
new EntryViewCount() { EntryID = blogPost.ID });
context.PostBodys.Add(postBody);
context.SaveChanges();
//提交事务
transaction.Complete();
}
}
相关链接:
EntityFramework与TransactionScope事务和并发控制
将不确定变为确定~transactionscope何时提升为分布式事务?
2) Working with Transactions (EF6 Onwards)
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
context.Database.ExecuteSqlCommand( @"UPDATE Blogs SET Rating = 5 WHERE Name LIKE '%Entity Framework%'" );
var query = context.Posts.Where(p => p.Blog.Rating >= 5);
foreach (var post in query)
{
post.Title += "[Cool Blog]";
}
context.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception)
{
dbContextTransaction.Rollback();
}
}
相关链接:
Working with Transactions (EF6 Onwards)
2、 EF 中 Many to Many relation
1) DateBase First
相关链接:
2) Code First
尤其注意双向一对一关系,直接已对象一的主键设置为对象的主键和外键
相关链接:
Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many
**** Entity Framework Code First关系映射约定
3、 EF 中的继承Inheritance
1) DataBase First
相关链接:
Entity Framework Modeling: Table Per Type Inheritance
Entity Framework Modeling : Entity Splitting
Entity Framework Modeling: Entity Splitting Part II (adding inheritance)
2) Code First
相关链接:
Inheritance Strategy in Code-First
c) Table per Concrete class (TPC)
4、 EF Code First Migrations数据库迁移
Matrix 3.0
相关链接:
Code First Migrations with an existing database
5、 EF中直接运行SQL命令
相关链接:
Entity Framework 小技巧二 —— 如何在EF中直接运行SQL命令
How to execute sql query from Entity framework
Entity Framework Code First执行SQL语句、视图及存储过程
6、 EF深入了解
相关链接:
Entity Framework 4.1 DbContext使用记之一——如何查找实体? DbSet.Find函数的使用与实现
(个人来说不是很推荐,还是比较倾向于先查)
7、 EF中Self-Tracking Entities
相关链接:
8、 EF 批量更新、删除
相关链接:
Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
entity framework 批量更新,批量删除,分页 的扩展函数
9、 EF 6新特性
1) 异步
相关链接:
2) Log
相关链接:
3) Interception 拦截
相关链接:
EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一
4) 批量增加删除
相关链接:
DbSet.AddRange & DbSet.RemoveRange:
10、 EF 注意事项
相关链接:
为提高entity framework 性能,要注意哪些事情.
11、 Configuring Relationships
1) DataBase First
相关链接:
2) Code First
相关链接:
12、 并发模式
1) DataBase First
2) Code First
高并发处理 - 乐观锁
EF+MySQL乐观锁控制电商并发下单扣减库存,在高并发下的问题
13、 Fluent API
Entity Framework Code First (四)Fluent API - 配置属性/类型
14、Code first 数据库初始化
Understanding Database Initializers in Entity Framework Code First
15、EntityFramework Connection Management -- 数据库连接管理
EntityFramework Connection Management
Entity Framework 项目使用心得的更多相关文章
- 记一次Entity Framework 项目的优化过程
在博客园看了不少其他大神的经验.今天也抽空贡献点自己的经验(并不是说自己也是大神..小弟还只新手程序员去年才毕业的) 好了废话不多说,直接进入主题.(具体的好坏各位看官就随便看看吧..没有什么好坏之分 ...
- Entity Framework 6.1 学习系列1--概况、安装
原文:Entity Framework 6.1 学习系列1--概况.安装 Entity Framework:实体框架,看名字就知道是针对模型数据的.这是MS推出的一款ORM工具. 与NHibernat ...
- Entity Framework 实体框架的形成之旅--实体数据模型 (EDM)的处理(4)
在前面几篇关于Entity Framework 实体框架的介绍里面,已经逐步对整个框架进行了一步步的演化,以期达到统一.高效.可重用性等目的,本文继续探讨基于泛型的仓储模式实体框架方面的改进优化,使我 ...
- Entity FrameWork对有外键关联的数据表的添加操作
前天做了一个MVC Entity FrameWork项目,遇到有外键关联的数据编辑问题.当你编辑的时候,按照正常的逻辑,把每个字段的数据都对号入座了,然后点击保存按钮,本以为会顺理成章的编辑数据,但是 ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- N-Tier Entity Framework开源项目介绍
N-Tier Entity Framework是一个基于微软Entity Framework的N层.NET解决方案. 并且与以下这此技术点无缝集成了: § WCF RIA Ser ...
- 旧项目如何切换到Entity Framework Code First
Entity Framework Code First固然是好东西,然而如果是已经存在的旧有项目,如何简单方便的使用切换呢? 这里介绍一个VS的插件Entity Framework Power Too ...
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...
- ASP.Net Core项目在Mac上使用Entity Framework Core 2.0进行迁移可能会遇到的一个问题.
在ASP.Net Core 2.0的项目里, 我使用Entity Framework Core 2.0 作为ORM. 有人习惯把数据库的连接字符串写在appSettings.json里面, 有的习惯写 ...
随机推荐
- 从零开始,跟我一起做jblog项目(一)引言
从零开始,跟我一起做jblog项目(一)引言 想做一个java版的blog,源自一个很久之前的想法 当时刚学习JAVA的web编程 想买自己的域名,自己的VPS,安装自己的WEB服务 用google ...
- linux 技巧:使用 screen 管理你的远程会话(短时间内同时开启多个会话)
screen -S zyj 开启一个会话窗口 会进入这个页面 然后按 Ctrl+a,再按一下d 退出 然后输入 screen -r -d zyj 会从新进入这个页面 如果你的工作完成就直接输入 关 ...
- phpstrom直接运行和调试php
最近想学服务器开发,但是没找到免费的虚拟主机,好在有一大把的php主机, 于是决定学php了,但并不准备学网页制作,只是把php作为服务器逻辑处理语言. 下载xampp,打开phpstrom的设置界面 ...
- CSS布局奇淫技巧之--各种居中<转>
居中是我们使用css来布局时常遇到的情况.使用css来进行居中时,有时一个属性就能搞定,有时则需要一定的技巧才能兼容到所有浏览器,本文就居中的一些常用方法做个简单的介绍. 注:本文所讲方法除了特别说明 ...
- js函数与 Promise的使用
JavaScript的函数不但是“头等公民”,而且可以像变量一样使用,具有非常强大的抽象能力. 定义函数的方式如下: function abs(x) { if (x >= 0) { return ...
- make: *** [sapi/cli/php] Error 1 解决办法
make: *** [sapi/cli/php] Error 1 一:考虑过make clean,问题依然 二:(采取此方法后出现启动apache报错:/usr/local/apache2/modul ...
- (转)FS_S5PC100平台上Linux Camera驱动开发详解(一) .
平台linuxstructlinux内核videocam 说明: 理解摄像头驱动需要四个前提: 1)摄像头基本的工作原理和S5PC100集成的Camera控制器的工作原理 ...
- 【BZOJ】1657: [Usaco2006 Mar]Mooo 奶牛的歌声(单调栈)
http://www.lydsy.com/JudgeOnline/problem.php?id=1657 这一题一开始我想到了nlog^2n的做法...显然可做,但是麻烦.(就是二分+rmq) 然后我 ...
- Codeforces Round #266 (Div. 2)
http://codeforces.com/contest/466 噗,b没写出来啊.a写完后过了40分钟了啊,罚时4次啊!果然太弱 总结: a题看错题,没有考虑m>=n其实也是可行的,导致调了 ...
- python爬虫<urlopen error [Errno 10061] >
在网上看了十几篇文章,都是说的是IE的代理设置,具体是: Tools->Internet Options->Connections->Lan Settings 将代理服务器的小勾勾去 ...