zoukankan      html  css  js  c++  java
  • 使用EF操作不同数据库(以SQLite为例)

    最近一直在和数据库作对。

    从安卓平台上给了我个SQLite数据库,要求程序能够读取不同的文件。由于字段实在太多,不愿意直接使用原来直接读取datatable的方式来做,手动写映射太痛苦...于是想起来EF来。

    那么问题来了,学习EF的时候,一般都是直接在app.config或者web.config中写入connectionstring,操作一个数据库的时候挺好,但是如果要操作的数据库需要临时指定的话,就比较麻烦,写进去不太合适。

    我的第一个想法,就是使用DbContext构造函数的重载

    public MyDbContext ()
        :base("ConnectionStringorName")
    {
    
    }
    View Code

    这里面可以接受一个连接字符串或者config文件的name。

    P.S. 使用连接字符串的时候,直接填入就可以,使用name的时候,填入的样子类似"name=myconn"

    使用name不合适了,直接使用连接字符串呢,provider怎么指定?不指定会不会直接用SQL EXPRESS呢?自己想了想,没有再去试了,应该也是可以的,写完再补。

    第二个办法,就是使用Database.Connection设置连接字符串,具体方法如下:

    public MyDbContext(string connection)
            {
                Database.Connection.ConnectionString = GetSqliteString(connection);
            }

    这里不调用base里面的方法,对于mysqlite,getsqlitestring如下:

            private string GetSqliteString(string connect)
            {
                return "Data Source=" + connect;
            }

    这样就能操作connectionstring了,只需要连接的时候传递一个路径就可以了。

    同理,使用其他类型的数据库也可以这么操作,虽然实际上估计这么用的人不多。

  • 相关阅读:
    Openwrt智能路由系统开发--内容总结
    EdgeX foundry树莓派搭建与MQTT通讯
    C语言学习截图保存
    使用python生成Latex公式语法
    数据结构与算法之排序
    数据结构与算法之常用数据结构
    MySQL数据库规范 (设计规范+开发规范+操作规范)
    动态规划之LIS(最长上升子序列)
    动态规划之区间DP
    动态规划之状态压缩DP
  • 原文地址:https://www.cnblogs.com/podolski/p/4090034.html
Copyright © 2011-2022 走看看