Subsonic 亚音速和非默认连接字符串问题

Subsonic 亚音速和非默认连接字符串问题,subsonic,subsonic3,Subsonic,Subsonic3,我在程序中遇到了错误,因为SubSonic3返回的记录中有默认的连接字符串 SingleOrDefault(ByVal expression As System.Linq.Expressions.Expression(Of System.Func(Of Company.filter, Boolean)), ByVal connectionString As String, ByVal providerName As String) 在亚音速声源中,Database.cs第323行: insta

我在程序中遇到了错误,因为SubSonic3返回的记录中有默认的连接字符串

SingleOrDefault(ByVal expression As System.Linq.Expressions.Expression(Of System.Func(Of Company.filter, Boolean)), ByVal connectionString As String, ByVal providerName As String)
在亚音速声源中,Database.cs第323行:

instance = Activator.CreateInstance<T>();
instance=Activator.CreateInstance();
我想这就是我的问题所在。它使用默认构造函数创建实例,然后返回它作为结果,这就是我们释放自定义连接字符串的地方

就我个人而言,我通过在SingleOrDefault函数中向ActiveRecord.tt模板添加两行来修复它,该函数具有connectionString参数:

            single._db=new <#=Namespace#>.<#=DatabaseName#>DB(connectionString, providerName);
            single._repo = new SubSonicRepository<<#=tbl.ClassName#>>(single._db); 
single.\u db=new.db(connectionString,providerName);
单一._repo=新的子存储库(单一._db);

但是我认为你应该更深入地研究这个问题,罗伯:)

我不明白。您可以指定ConnectionString的名称为Settings.tt-这就是我们使用的名称。

是,但它是默认的连接字符串。使用自定义ConnectionString参数调用的SingleOrDefault函数返回指向错误数据库的记录。例如,我有几个数据库,它们具有相同的结构,但它们是分开使用的。假设我有Company1和Company2数据库。如果我使用record.SingleOrDefault(x=>x.name=“joe”,GetConnectionString或Company2,ProviderName),它将返回指向Company1数据库的记录对象,但我传递了Company2数据库的连接字符串。我希望这能说明情况。