Успех!Я закончил тем, что создал интерфейс, который имел те же методы, что и класс db, и возвратил его из общего метода.
Вот фрагмент из интерфейса:
public interface IDatabase {
ObjectResult<Method_1_Result> Method_1(Nullable<int> id, string username);
ObjectResult<Method_2_Result> Method_2(string username, string password);
}
и вот эквивалентметоды из классов db:
public partial class TnsDb : DbContext, IDatabase {
public TnsDbDev()
: base("name=TnsDb")
{
}
public virtual ObjectResult<Method_1_Result> Method_1(Nullable<int> id, string username)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Method_1_Result>("Method_1", idParameter, usernameParameter);
}
public virtual ObjectResult<Method_2_Result> Method_2(string username, string password)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Method_2_Result>("Method_2", usernameParameter, passwordParameter);
}
}
public partial class SngDb : DbContext, IDatabase {
public SngDbDev()
: base("name=SngDb")
{
}
public virtual ObjectResult<Method_1_Result> Method_1(Nullable<int> id, string username)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Method_1_Result>("Method_1", idParameter, usernameParameter);
}
public virtual ObjectResult<Method_2_Result> Method_2(string username, string password)
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Method_2_Result>("Method_2", usernameParameter, passwordParameter);
}
}
Обратите внимание, что мне пришлось удалить тела get и set из метода интерфейса, поскольку они не были нужны и продолжали генерировать ошибки.
Я такжеПодозреваю, что это решение является специфическим для моей ситуации необходимости подключения к двум базам данных с одинаковой схемой и не будет работать, если схемы немного отличаются, поскольку они не могут использовать один и тот же интерфейс.
Техника также требует, чтобы вы не забывали повторно добавлять ссылку на интерфейс каждый раз, когда вы заново генерируете класс db (в данном случае - класс TnsDb), и обновлять его каждый раз, когда вы меняете какие-либо методы в классе db.
Во всяком случае, я надеюсь, что это поможет любому с той же проблемой, что и у меня.Спасибо всем, кто помог мне решить эту проблему.