【发布时间】:2015-03-15 10:37:00
【问题描述】:
我知道这个问题看起来很奇怪,因为 EF 负责 LINQ 到 SQL 的转换,但我正在维护一个应用程序,其中 queries are hardcoded and encrypted in the database itself(并由证明其正确性的律师编写)。
基本上,我可以使用DbContext.Database.Connection 对象触发 SQL 文本,但这些查询是以与方言无关的格式编写的。因此代码根据绑定到配置变量的if case 执行令牌替换
if (Configuration.DbType == DbType.MYSQL)
query = ReplaceForMySQL(query);
if (Configuration.DbType == DbType.SQLSERVER)
query = ReplaceForSqlServer(query);
我可以保留代码原样,也可以删除 Web.config 中的DbType 参数。
DB 使用 EF 连接字符串绑定。我如何知道当前正在使用什么 DBMS?例如,在 NHibernate 中,我可以测试来自 ISessionFactory 或 Configuration 的方言
【问题讨论】:
标签: c# mysql sql-server entity-framework