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();
    }
}

 

相关链接:

在Entity Framework中使用事务

EntityFramework与TransactionScope事务和并发控制

微软的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

 

相关链接:

Entity Framework 4-多对多、自关联的关系

 

2)  Code First

 尤其注意双向一对一关系,直接已对象一的主键设置为对象的主键和外键

相关链接:

Entity Framework 实体关系总结:one-to-one, one-to-many, many-to-many

**** Entity Framework Code First关系映射约定

Entiy Framework实践系列

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

a)       Table per Hierarchy (TPH)

b)       Table per Type (TPT)

c)       Table per Concrete class (TPC)

  

4、         EF Code First Migrations数据库迁移

Matrix 3.0

相关链接:

EF Code First Migrations数据库迁移

Code First Migrations

migrate.exe

【迁移】—Entity Framework实例详解

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函数的使用与实现

EF直接更新数据(不需查询)

 (个人来说不是很推荐,还是比较倾向于先查)

 

7、         EF中Self-Tracking Entities

相关链接:

Self-Tracking Entities

使用自跟踪实体

 

8、         EF 批量更新、删除

相关链接:

Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)

entity framework 批量更新,批量删除,分页 的扩展函数

Linq To SQL 批量更新方法汇总

 

9、         EF 6新特性

EF 6.0 TUTORIALS

1)  异步

相关链接:

Async query and Save

 

2)  Log

相关链接:

Database Command Logging

3)  Interception 拦截

相关链接:

Interception

EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一

4)  批量增加删除

相关链接:

DbSet.AddRange & DbSet.RemoveRange:

 

10、     EF 注意事项

 相关链接:

为提高entity framework 性能,要注意哪些事情.

 

11、    Configuring Relationships

1)  DataBase First

 相关链接:

实体框架关系与导航属性

2)  Code First

相关链接:

Fluent API - Relationships

 

12、    并发模式

1)  DataBase First

并发模式

2)  Code First

Code First开发系列之管理并发和事务

 

高并发处理 - 乐观锁

Entity Framework 并发处理

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

posted @ 2014-11-20 16:23  海~~D  阅读(782)  评论(0编辑  收藏  举报