小编Mat*_*key的帖子

SQLite.net SQLiteFunction在Linq to SQL中不起作用

我使用System.Data.SQLite.SQLiteFunction在C#中创建了一些自定义SQLite函数.当使用SQLiteDataAdapter执行查询时,它工作得很好,但它不起作用,但是,当使用Linq to SQL时,我会收到错误,指出该函数不存在.

我想底线是,如何让Custom SQLiteFunctions在Linq to SQL中工作?要么让它们加载它们应该的方式,要么通过修改SQLite.Net的源代码使它们成为dll的一部分?

注意:我理解实体框架是首选,这是遗留应用程序,我没有选项来更改它.我尝试手动将函数绑定到DataContext.Connection,没有骰子.


关于尝试修改System.Data.SQLite的背景:我尝试下载源代码,我可以从源代码成功构建,但源代码对我来说有点令人费解.

  • 在System.Data.SQLite.2012项目中,项目中不包含任何文件,但所有源文件都存在于实际文件夹中.它们似乎包含在名为System.Data.SQLite.Files.targets的文件中的解决方案中.这对我来说是一个奇怪的设置.
  • 我将自定义函数添加到项目文件夹中,但没有将它们包含在项目中,就像所有其他文件一样.然后我将它们添加到System.Data.SQLite.Files.targets中.
  • 我构建了解决方案,它们确实出现在程序集中.虽然我似乎可以将文件添加到程序集和构建中,但修改现有代码似乎没有任何影响.
  • 我进入了SQLiteConnection类并在Open方法中添加了一个新的Exception,我在关键位置添加了Console.Writeline,我在现有代码中修改的任何东西似乎都没有进入已编译的程序集.

这样做的目的是尝试将我的自定义函数构建到System.Data.SQLite.dll中,而不是依赖于通过反射自动加载.

c# sqlite system.data.sqlite linq-to-sql

12
推荐指数
1
解决办法
5676
查看次数

Python,从抽象基调用子类方法

我正在尝试创建一个基本抽象类和子类来抽象对后端数据库的访问。一个子类是 SQLAlchemy,另一个子类是 MongoDB 或其他 nosql。下面是一个非常简单的例子。在基类中,我需要为每种类型的对象提供一个 deleteObject,因为 noSQL 实现将需要这个,但是,任何使用 SQLAlchemy 的内容都只需要一个删除方法。我想通过为抽象基础中的每种类型的对象提供以下方法来节省自己的打字时间。如果这有效,我就不必为 SQLAlchemy 子类中的每个对象类型定义 deleteObject,因为基本抽象只会将其传递给私有 __delete 函数。不幸的是,当我调用deleteUser时,它确实会转到抽象基函数,但对self.__delete(user)的调用会转到抽象函数,即使子类定义了此函数。当子类定义该函数的实现时,有没有办法确保抽象实现中的函数调用转到子类?

@abc.abstractmethod
def deleteUser(self, user):
    """Delete an user from the backend database"""
    print('abstractmethod')
    self.__delete(user)

@abc.abstractmethod
def __delete(self, object):
    print('dont go here')
Run Code Online (Sandbox Code Playgroud)

python abstract-class python-3.x

0
推荐指数
1
解决办法
1557
查看次数