zoukankan      html  css  js  c++  java
  • 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批量删除数据这篇文章,我这里就不多讲了。

     

  • 相关阅读:
    举重若轻是一种大气的生活态度
    论自我发展与自我职场生存
    ASP.Net与IIS原理粗浅的理解
    Net反射效率(转载)
    MVC技术
    单件模式 多线程
    公司的机票返利项目总结
    JS调用google地图
    System.Runtime.Serialization报错查找
    信息采集
  • 原文地址:https://www.cnblogs.com/TianFang/p/3013038.html
Copyright © 2011-2022 走看看