0

我的问题很简单:为什么我必须在我的 ASP.NET 应用程序上引用 MySql.Data.Entity 才能在类库中使用 MySql Entity Framework 5?

我解释一下:我在 2 层中构建了一个示例应用程序:Asp.Net Web App 和一个类库(都在 VB.NET 中)

我在类库中引用了 MySql.Data 和 MySql.Data.Entity,我在其中创建了 Code First 模型和 DbContext。

我在 Asp.Net App 上引用了 MySql.Web,并将 DbProviders 放在 Web Config 和连接字符串上。

当我尝试运行一个简单的查询时,它失败并在 MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance() 上出现通用 NullPointerException

但是,如果我在 Web 应用程序上安装 MySql.Data.Entity,那么一切都会如愿以偿。

在我看来,如果我将数据访问层与表示分离,为什么我必须引用仅在数据层中使用的 dll?这与 CLR 如何加载程序集有任何关系吗?还是我做错了什么?

4

1 回答 1

0

您的类库引用了 MySql Entity Framework 5,所以是的,需要安装它。如果您在本地开发,您可能无需先安装这些位就可以编译您的应用程序(假设您对类库的引用是一个已编译的 DLL),但您将无法运行您的应用程序。

于 2013-10-17T17:12:55.603 回答