我使用System.Data.SQLite.SQLiteFunction在C#中创建了一些自定义的SQLite函数。当使用SQLiteDataAdapter执行查询时,它可以很好地工作,但是当我使用Linq to SQL时出现错误,指出该函数不存在。
我的问题是,如何让自定义的SQLiteFunctions在Linq to SQL中工作?是否通过以预期方式加载它们或修改SQLite.Net的源代码,使其成为dll的一部分?
请注意:虽然Entity Framework是首选,但这是旧应用程序,我没有更改的选项。我尝试手动将函数绑定到DataContext.Connection,但无法解决问题。
关于修改System.Data.SQLite的尝试背景:
我尝试下载源代码,可以成功构建,但是源代码对我来说有点令人困惑。
在System.Data.SQLite.2012项目中,项目中没有包含任何文件,但所有源文件都存在于实际文件夹中。它们似乎在名为System.Data.SQLite.Files.targets的文件中包含在解决方案中。对我来说,这是奇怪的设置。
我将我的自定义函数添加到项目文件夹中,但不像所有其他文件那样将它们添加到项目中。然后我将它们添加到System.Data.SQLite.Files.targets中。
我构建了解决方案,它们确实出现在程序集中。虽然我可以将文件添加到程序集并进行构建,但似乎修改现有代码没有影响。
我进入了SQLiteConnection类并在Open方法中添加throw new Exception,我在关键位置添加了Console.Writeline,但我修改的现有代码似乎没有进入编译后的程序集。
这样做的目的是尝试将我的自定义函数构建到System.Data.SQLite.dll中,而不是依靠反射自动加载它们。
我的问题是,如何让自定义的SQLiteFunctions在Linq to SQL中工作?是否通过以预期方式加载它们或修改SQLite.Net的源代码,使其成为dll的一部分?
请注意:虽然Entity Framework是首选,但这是旧应用程序,我没有更改的选项。我尝试手动将函数绑定到DataContext.Connection,但无法解决问题。
关于修改System.Data.SQLite的尝试背景:
我尝试下载源代码,可以成功构建,但是源代码对我来说有点令人困惑。
在System.Data.SQLite.2012项目中,项目中没有包含任何文件,但所有源文件都存在于实际文件夹中。它们似乎在名为System.Data.SQLite.Files.targets的文件中包含在解决方案中。对我来说,这是奇怪的设置。
我将我的自定义函数添加到项目文件夹中,但不像所有其他文件那样将它们添加到项目中。然后我将它们添加到System.Data.SQLite.Files.targets中。
我构建了解决方案,它们确实出现在程序集中。虽然我可以将文件添加到程序集并进行构建,但似乎修改现有代码没有影响。
我进入了SQLiteConnection类并在Open方法中添加throw new Exception,我在关键位置添加了Console.Writeline,但我修改的现有代码似乎没有进入编译后的程序集。
这样做的目的是尝试将我的自定义函数构建到System.Data.SQLite.dll中,而不是依靠反射自动加载它们。