• 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; }
    }
    }
  • 相关阅读:
    c
    罗扎诺夫高效记忆音乐【推荐试试】
    通过信息系统项目管理师最高可申领补贴2000元
    人事考试网【您有新信息】浙江人事考试网_浙江省公务员考试网_2017浙江公务员考试_中公浙江
    几种需求管理工具(转)_伊处_新浪博客
    PLM_百度百科
    统御软件 (oKit)| 项目管理软件,项目管理咨询,项目需求管理工具,集成研发管理平台 ——管理咨询与实施工具 一站式项目管理解决方案
    Oracle PLM
    Oracle PLM
    Oracle PLM
  • 原文地址:https://www.cnblogs.com/IsSshuai/p/13915024.html
Copyright © 2020-2023  润新知