• 了解entity framework其他query方式之Entity SQL,Raw Sql分析


    一:linq 对ef来说不是唯一性的query。。。

    二:Entity Sql

    1. esql => entity sql... 【类sql的语言】 和sql差不多,但是呢,不是sql。。。

    using (SchoolDBEntities db = new SchoolDBEntities())
    {
    //Querying with Object Services and Entity SQL
    string sqlString = "select Value s from SchoolDBEntities.Students as s"; //select * from Student

    var objctx = (db as IObjectContextAdapter).ObjectContext;

    ObjectQuery<Student> student = objctx.CreateQuery<Student>(sqlString);

    var query = student.ToList();
    }

    了解大概的一个语法。。。


    官网: https://msdn.microsoft.com/zh-cn/library/bb399560.aspx


    2. EntityConnection,EntityCommand....


    使用原声一点各种命令


    using (var con = new EntityConnection("name=SchoolDBEntities"))


    这里的【name=SchoolDBEntities】 就是获取Appconfig中的SchoolDBEntities节点的数据库连接串

    using (var con = new EntityConnection("name=SchoolDBEntities"))
    {
    con.Open();
    EntityCommand cmd = con.CreateCommand();
    cmd.CommandText = "SELECT VALUE st FROM SchoolDBEntities.Students as st where st.StudentName='nihao'";
    Dictionary<int, string> dict = new Dictionary<int, string>();
    using (EntityDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.CloseConnection))
    {
    while (rdr.Read())
    {
    int a = rdr.GetInt32(0);
    var b = rdr.GetString(1);
    dict.Add(a, b);
    }
    }
    }

    rsql => raw sql ... 【直接灌入sql到db中】


    大家根据自己的爱好进行选择。。。


    3. rsql:

    《1》 repository中的rsql查询。。。。

    CURD操作。。。

    1. R: var query = db.Students.SqlQuery("select * from Student").ToList();


    《2》 在database level上


    1. R: var query = db.Database.SqlQuery<Student>("select * from Student").ToList();


    2. C,U,D var query = db.Database.ExecuteSqlCommand("update Student set StudentName='jack2' where StudentName='jack'");


    linq太复杂,不好写。。。即使有了linqer,linqpad。。。 linq <=> sql

  • 相关阅读:
    单元测试的好处
    注入式开发(二):.NET 匿名函数
    ASP.NET MVC 提供与访问 Web Api
    Oracle可插拔数据库的jdbc连接串写法
    操作系统学习笔记:保护
    条件编译符号与发布
    操作系统学习笔记:I/O输入系统
    如何清空文件上传控件里的选定文件(路径)
    如何才能成为一名架构师?
    sql里的in对应linq的写法 及 IQueryable转化为Dictionary
  • 原文地址:https://www.cnblogs.com/dragon-L/p/6545629.html
Copyright © 2020-2023  润新知