2013-10-17 5 views
0

Ma question est simple: Pourquoi dois-je faire référence MySql.Data.Entity sur mon application ASP.NET afin de travailler avec MySql Entity Framework 5 dans une bibliothèque de classe?Asp.Net Application utilisant MySql + Entity Framework

J'explique: J'ai structuré un exemple d'application en 2 couches: Asp.Net Web App et une bibliothèque de classe (à la fois en VB.NET)

Je MySql.Data et référencé sur MySql.Data.Entity la bibliothèque de classes, où j'ai créé mon modèle Code First et mon DbContext.

Je MySql.Web sur Asp.Net référencé App et les mettre DbProviders sur Config Web et les chaînes de connexion.

Lorsque je tente d'exécuter une requête simple, il échoue avec un NullPointerException générique sur MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance()

Cependant, si j'installe MySql.Data.Entity sur le Web App, alors tout va comme un lit de roses.

Dans mes pensées, si je sépare l'accès aux données de la couche présentation, pourquoi dois-je faire référence à une dll qui est utilisé uniquement dans la couche de données? Est-ce lié d'une manière ou d'une autre à la façon dont CLR charge les assemblages? Ou est-ce que je fais quelque chose de mal?

Répondre

0

Vos références de bibliothèque de classe Framework MySql entité 5 donc oui, il devra être installé. Si vous développez localement, vous pouvez probablement compilez votre application sans avoir d'abord l'installation de ces bits (en supposant que votre référence à votre bibliothèque de classes est une DLL déjà compilé) mais vous ne serez pas en mesure d'exécuter votre application.

+0

Je ne sais pas si je suis votre droit de réponse, mais la question n'est pas sur le déploiement. Est-ce que c'est le point d'avoir des calques séparés si je dois placer les DLL de données dans le calque de présentation aussi. – Denis

Questions connexes