zoukankan      html  css  js  c++  java
  • EntityFramework初入

    //NuGet包管理,搜索引入 EntityFramework6 、Newtonsoft
    //使用:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.Entity;
    using System.Data.SqlClient;
    using System.Configuration;
    using Newtonsoft.Json;
    namespace EF_Test
    {
    class Program
    {
    static void Main(string[] args)
    {
    try
    {
    TestContext testContext = new TestContext();
    var personList = testContext.TestTables.AsNoTracking().ToList();
    Console.WriteLine(JsonConvert.SerializeObject( personList));
    
    //通过DBContext.Database,不需要创建对应Entity,可创建sqlconnection,sql语句返回DataTable
    //DataTable dddd = SqlQueryForDataTatable(testContext.Database, "select * from TestTable");
    //if (dddd.Rows.Count > 0)
    //{
    // Console.WriteLine(dddd.Rows[0]["AAAA"].ToString());
    //}
    //Console.WriteLine("END");
    }
    catch (Exception exc)
    {
    Console.WriteLine(exc.Message);
    }
    Console.Read();
    }
    
    public static DataTable SqlQueryForDataTatable(Database db,string sql)
    {
    SqlConnection conn = (SqlConnection)db.Connection;
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = sql;
    
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable table = new DataTable();
    adapter.Fill(table);
    
    conn.Close();//连接需要关闭
    conn.Dispose();
    return table;
    }
    }
    
    //直接借鉴网上代码
    public class TestContext : DbContext
    {
    private static TestContext _instance;
    
    public static TestContext Instance
    {
    get
    {
    if (_instance == null)
    {
    _instance = new TestContext();
    }
    return _instance;
    }
    }
    
    private string _connectionString;
    
    public string ConnectionString
    {
    get
    {
    if (string.IsNullOrWhiteSpace(_connectionString))
    {
    _connectionString = ConfigurationManager.ConnectionStrings["MyDbContext"].ConnectionString;
    }
    return _connectionString;
    }
    set
    {
    _connectionString = value;
    }
    }
    
    public TestContext()
    : base("MyDbContext")
    {
    //DBContext直接根据MyDbContext键值去config中读取对应的value并创建链接
    }
    
    public TestContext(string connectionString)
    : base(connectionString)
    {
    
    }
    
    /// <summary>
    /// 定义的实体
    /// </summary>
    public DbSet<TestTable> TestTables { get; set; }
    
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    //表名映射
    base.OnModelCreating(modelBuilder);
    modelBuilder.Types().Configure(t =>
    {
    //获取类名
    var tableName = t.ClrType.Name;
    //将类名处理为指定规范表名
    tableName = tableName.Replace("Entity", "");
    t.ToTable(tableName);
    });
    }
    }
    //对应表已在数据库中创建
    public class TestTable
    {
    public int id { get; set; }
    public string AAAA { get; set; }
    public string BBBB { get; set; }
    }
    }
  • 相关阅读:
    Flink CEP实例及基础应用
    seata 分布式事务
    skywalking 分布式链路追踪
    datax 离线数据同步工具
    rocketmq 消息队列
    Nacos 服务注册
    跨站(cross-site)、跨域(cross-origin)、SameSite与XMLHttpRequest.withCredentials
    读写二进制文件与文本文件
    WPF中通过双击编辑DataGrid中Cell(附源码)
    记一次XML文件读取优化
  • 原文地址:https://www.cnblogs.com/IsSshuai/p/13915024.html
Copyright © 2011-2022 走看看