Entity Framework学习(二)基本操作


我们一般对数据主要有增删查以及更新这几中基本操作形式,本文就以前面的文章中的代码为例,简单的介绍一下在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语句一样使用非常复杂的查询条件,对于复杂的查询来说非常给力。

2. 使用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批量删除数据这篇文章,我这里就不多讲了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM