zoukankan      html  css  js  c++  java
  • 了解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

  • 相关阅读:
    android源码在线查看
    关于codereview工具与建议
    <转>如何进行code review
    [转] Android实时抓包分析 : 善用adb调试桥
    Swift:UIKit中Demo(一)
    Objective-C学习笔记(十)——循环语句for和do-while的使用
    一些牛人的IOS博客,mark下慢慢学习
    Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力)
    Web前端之基础知识
    通过金矿模型介绍动态规划
  • 原文地址:https://www.cnblogs.com/dragon-L/p/6545629.html
Copyright © 2011-2022 走看看