entity framework学习

原文:http://www.cnblogs.com/TianFang/archive/2013/04/10/3013038.html

我们一般对数据主要有增删查以及更新这几中基本操作形式,本文就以前面的文章中的代码为例,简单的介绍一下在Entity Framework中基本操作的使用方法。

查询

  1. 通过linq语句查询

    var query = from b in db.Blogs
    where b.BlogId == 1 && b.Name == "my blog"
    select b;

    var blog = query.FirstOrDefault();

这种方式的好处是可以类似Sql语句一样使用非常复杂的查询条件,对于复杂的查询来说非常给力。

  1. 使用Find函数通过主键查询

    var blog = db.Blogs.Find(1);

这种方式类似于字典式的查询,通过主键查询到数据;是我们使用过程中用得最多的一种方式。在使用Find查询时,如果指定的主键无法查询到结果,则返回null,不会抛异常。

添加:

db.Blogs.Add(new Blog() { BlogId = 2, Name = "test2" });
db.SaveChanges();

添加操作和我们操作集合是一样的,不过这里需要调用一下SaveChanges函数将变更保持到数据库。

更新:

var blog = db.Blogs.Find(1);
blog.Name = "test1";
db.SaveChanges();

更新分为三步:查询数据、修改数据、保存结果;还是比较简单的。

删除:

var blog = db.Blogs.Find(1);
db.Blogs.Remove(blog);
db.SaveChanges();

删除也是分为三步:查询数据、删除数据、保存结果。需要注意的是,如果在Remove中传入null函数,则会抛异常。

批量删除和批量更新:

批量删除和批量更新在我们常规的集合操作中基本上用不到,但在Sql操作中却是一个非常常见的操作。从理论上来讲我们可以通过Lambda表达式非常优雅的实现这一操作,但EntityFramework却不支持,只能通过执行sql语句来删除。这也是EntityFramework的一个一直被人诟病的地方。

不过得益于C#灵活而强大的语法,已经有人通过扩展函数来实现这一功能,感兴趣的可以看下老赵的使用Lambda Expression批量删除数据这篇文章,我这里就不多讲了。

posted @ 2014-10-31 09:28  清空回声  阅读(188)  评论(0)    收藏  举报