2014-10-08 3 views
0

Мой метод WCF пытается получить некоторые данные из базы данных. В конце этого метода:Erorr при подключении к базе данных

public override IQueryable<Apartment> GetAll() 
    { 
     return base.GetAll().Include("Pictures").Include("Infos"); 
    } 
    public virtual IQueryable<T> GetAll() 
    { 
     return DbSet; 
    } 

, но кажется, что это происходит, когда он пытается открыть соединение с базой данных. Я получаю ошибку The underlying provider failed on Open.". Могу ли я как-то указать в файле WCF confg, для которого разрешена база данных для подключения или в моем проекте разрешить WCF подключаться к моей базе данных. Или есть другое решение?

public Base() 
    { 
     DataContext = new Context(); 
     this.DbSet = DataContext.Set<T>(); 
     DataContext.Configuration.ProxyCreationEnabled = false; 
     DataContext.Configuration.LazyLoadingEnabled = false; 
    } 

...

public class Context:DbContext 
{ 
     public Context() 
     : base("DefaultConnection") 
    { 

    } 
+0

Какой код вы используете для подключения к базе данных? Я говорю о connstrings в web.config, методе, который вы используете для их чтения, о том, как вы обрабатываете их в свой DataContext, ... НЕ ЗАБУДЬТЕ: удалите любую конфиденциальную информацию, такую ​​как пароли, имена пользователей или IP-адреса. Кроме того, существует внутреннее исключение из поставщика в этой ошибке? – Nzall

ответ

0

Создать частичное расширение класса к Context. Внутри этого переопределить конструктор для передачи в другой строке соединения (которая также должна быть в конфигурации как это имя) на базе, например

public partial class Context 
{ 
    public Context(string targetDBConnection) : base(targetDBConnection) {} 
}