首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用OleDb和DbExtensions进行查询

无法使用OleDb和DbExtensions进行查询
EN

Stack Overflow用户
提问于 2013-04-22 00:59:11
回答 1查看 164关注 0票数 1

这个问题是关于使用https://github.com/maxtoroq/DbExtensions

代码语言:javascript
复制
DbConnection connection = Database.CreateConnection("name=myconx");
var query = SQL.SELECT("u.username").FROM("Users u").WHERE("Id={0}", 1);
IEnumerable<Users> products = connection.Map<Users>(query);

下面的代码返回null,不知道为什么?

代码语言:javascript
复制
 getDbProviderFactory(connection);

下面是定义,不知道下一个代码的用途:

代码语言:javascript
复制
static readonly Func<DbConnection, DbProviderFactory> getDbProviderFactory =
           (Func<DbConnection, DbProviderFactory>)Delegate.CreateDelegate(typeof(Func<DbConnection, DbProviderFactory>), typeof(DbConnection).GetProperty("DbProviderFactory", BindingFlags.Instance | BindingFlags.NonPublic).GetGetMethod(nonPublic: true));

这是我的连接字符串

代码语言:javascript
复制
<add name="myconx" connectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=ES;Initial Catalog=TestDB;Data Source=ITA-PC\SQLR2" providerName="System.Data.OleDb"/>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-22 01:08:45

问题是OleDbConnection没有覆盖DbProviderFactory属性,这也是OdbcConnection的问题。我会将这些报告为bug。

如果你有源代码,你可以尝试这样做:

代码语言:javascript
复制
  public static DbProviderFactory GetProviderFactory(this DbConnection connection) {

     if (connection is OleDbConnection)
        return OleDbFactory.Instance;

     return getDbProviderFactory(connection);
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16133757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档