2014-10-08 146 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

您使用什么代码连接到数据库?我正在谈论web.config中的connstrings,用于读取这些内容的方法,如何将它们处理到DataContext中......不要忘记:删除任何敏感信息,如密码,用户名或IP地址。另外,那个错误中是否有提供者的内部异常? – Nzall 2014-10-08 13:42:04

回答

0

创建一类偏扩展Context。在那里覆盖的构造函数传递一个不同的连接字符串(这也需要在配置中作为该名称),例如

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