Entity Framework kann nicht sehen, ConnectionString in der App.config
Studiere ich Code First Entity Framework zusammen mit ASP.Net MVC-3.
Auf den ersten meiner trivial EFDbContext
- Klasse wurde in der WebUI
mvc-Projekt in einem Concrete
Ordner.
public class EFDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
Und es war verbraucht durch
public class EFProductRepository : IProductRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<Product> Products
{
get
{
return context.Products;
}
}
}
wo
public interface IProductRepository
{
IQueryable<Product> Products { get; }
}
Also habe ich folgenden code Hinzugefügt, um den Stamm-Web.config:
<connectionStrings>
<add name="WebUI.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
und es funktionierte.
Dann habe ich beschlossen, nehmen Sie es in eine separate Domain
Klasse Bibliothek-Projekt. Dort habe ich eine App.config-Datei. So entschied ich mich, um meine Verbindungszeichenfolge es, und es wurde zu sein:
<connectionStrings>
<add name="Domain.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Aber schließlich EF aufgehört zu sehen, es.
EFProductRepository
und EFDbContext
verschoben Domain
Projekt mit Ihrem root-Ordner Concrete
. Also der code den Aufruf der Konstruktor ist in EFProductRepository
, d.h. in Domain
Projekt.
Habe ich versucht zu benennen-App.config in Web.Config; versuchte, die Verbindungszeichenfolge zurück, um das Web.config des WebUI
Projekt. Es funktioniert nicht weder.
Was mache ich falsch?
- Haben Sie versucht, Ihre code-first-class-Bibliothek als startup-Projekt beim ausführen der migration-Befehl in der Paket-manager-Konsole?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klasse-Bibliothek-Projekt und App.config-Datei nicht mischen.
Der Konfigurationsdatei der Anwendung ist immer im Zusammenhang mit einer ausführbaren Datei oder, im Falle von web.config, mit einer website.
Ihre DLL-Projekt kann (und sollte) seine eigene config-Datei*.
Stattdessen konfigurieren Sie den Verbindungs-string zusammen mit Ihrer WebUI-Projekt. Sie können mehrere Verbindungszeichenfolge Einträge.
*Es gibt tatsächlich Wege, um zu verursachen, wird die DLL in der Tat seine eigene config-Datei. NLog, zum einen macht das. Allerdings ist es selten eine gute Idee.
name
im original-connectionstring, um dieDomain.Concrete.EFDbContext
und es würde funktionieren...Aber neben Ihnen gab mir ein sehr gutes Stück von Informationen über das *.config Problem. Ich wusste nicht, dass! Nochmals vielen Dank!!!Nutzen den connection string name ohne
namespace