2009-11-19 44 views
0

我在PROGRAMM遇到的bug,因为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>(); 

我认为这是我遇到的问题的原因。它使用默认构造函数创建实例,然后将其作为结果返回,这就是我们松散自定义连接字符串的地方。

我个人与添加2线ActiveRecord.tt模板,在功能的SingleOrDefault,这ConnectionString的参数固定它:

  single._db=new <#=Namespace#>.<#=DatabaseName#>DB(connectionString, providerName); 
      single._repo = new SubSonicRepository<<#=tbl.ClassName#>>(single._db); 

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

回答

0

我不关注。您指定ConnectionString的名称是Settings.tt - 这是我们使用的名称。

+0

是的,但它是默认的连接字符串。并且使用自定义ConnectionString参数调用的SingleOrDefault函数返回记录,即指向错误的数据库。 例如,我有几个数据库,它们具有相同的结构,但它们分开使用。可以说我有Company1和Company2数据库。如果我使用record.SingleOrDefault(x => x.name =“joe”,GetConnectionStringForCompany2,ProviderName),它将返回指向Company1数据库的记录对象,但我传递了Company2数据库的连接字符串。我希望能够说明这种情况。 – Nickname 2009-11-20 00:00:29