Изглежда сякаш имам проблем с connection string-а в проект с ASP.NET MVC (VS2013).
Исках да направя моделите с Entity Framework от вече съществуваща SQLServer база данни. Добавих ADO.NET моделите в model factory-то. Следвах стъпките и EF правилно създаде 6-те класа от 6-те таблици. Поне това сработи. Сега, като пусна проекта, приложението се свързва с LocalDB v11.0 вместо с базата, която използвах за създаване на класовете.Ето го и кода на BDDContex:
public partial class ImproDBEntities1 : DbContext
{
public ImproDBEntities1()
: base("name=ImproDBEntities1")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Categories_Impro> Categories_Impro { get; set; }
public virtual DbSet<Cours_Impro> Cours_Impro { get; set; }
public virtual DbSet<Ex_Impro> Ex_Impro { get; set; }
public virtual DbSet<Spectacle_Impro> Spectacle_Impro { get; set; }
public virtual DbSet<Categories_Du_Spectacle> Categories_Du_Spectacle { get; set; }
public virtual DbSet<Ex_du_Cours> Ex_du_Cours { get; set; }
}
Предполагам, че е проблем в web.config, но съм твърде начинаещ, за да го оправя сам.Ето го web.config:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename="|DataDirectory|\aspnet-Impro MVC-20160114025340.mdf";Initial Catalog="aspnet-Impro MVC-20160114025340";Integrated Security=True" providerName="System.Data.SqlClient" /><add name="ImproDBEntities" connectionString="metadata=res://*/Models.DBImpro.csdl|res://*/Models.DBImpro.ssdl|res://*/Models.DBImpro.msl;provider=System.Data.SqlClient;provider connection string="data source=DBNAME.SUBDOMAIN.DOMAIN.com;initial catalog=ImproDB;persist security info=True;user id=MYLOGIN;password=PASS;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /><add name="ImproDBEntities1" connectionString="metadata=res://*/Models.DBImpro.csdl|res://*/Models.DBImpro.ssdl|res://*/Models.DBImpro.msl;provider=System.Data.SqlClient;provider connection string="data source=DBNAME.SUBDOMAIN.DOMAIN.com;initial catalog=DBNAME;persist security info=True;user id=MYLOGIN;password=MYPASS;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Замених го с това:
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=DBNAME.SUBDOMAIN.DOMAIN.com;packet size=4096;user id=MYLOGIN;pwd=PASS;data source=DBNAME.SUBDOMAIN.DOMAIN.com;persist security info=False;initial catalog=ImproDB" />
</connectionStrings>
Но все още се свързва с localDB.Не трябва ли вече да се свързва с моята база след тази промяна?
Виждам и тази част, която има общо с базата:
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
Предполагам, че това трябва да оправя.Ако го закоментирам, приложението не тръгва:
An exception of type 'System.Data.SqlClient.SqlException' occurred in EntityFramework.dll but was not handled in user code
Допълнителната информация е тази:
A network-related or instance-specific error occurred while establishing a connection to SQL Server.
Някакви идеи как да го оправя?