即使访问仅限于我的数据访问层,我也需要在UI中引用实体框架吗?

罗伯特码

我有一个n层应用程序,在我的数据访问层中执行了数据库活动。我有一个应用程序层,要求我的数据访问层执行数据访问层中存储库中的任务。我的用户界面(现在是一个简单的控制台应用程序)用于测试结果,它要求我的应用程序层获取诸如数据列表之类的数据,这些数据又从存储库中获取,然后又全部返回到控制台应用程序。

如果未在控制台应用程序中添加实体框架作为参考,则会出现以下错误:

无法加载在ADO.NET提供程序的应用程序配置文件中注册的实体框架提供程序类型'System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer',名称不变,名称为'System.Data.SqlClient'。确保使用了程序集限定名称,并且该程序集可用于正在运行的应用程序。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=260882

当控制台应用程序不进行数据访问调用或实体框架操作时,为什么会出现此错误?所有这些操作都是在我的数据访问层中完成的,该数据访问层确实引用了Entity Framework。

更新:下面是我的控制台界面:

class MyServices
{
    IProductRequestServices _ProductRequestServices;
    public MyServices(IProductRequestServices _ProductRequestServices)
    {
        this._ProductRequestServices = _ProductRequestServices;
    }
    public void ProductList()
    {
        List<ProductRequestDetailDto> aList = _ProductRequestServices.GetProductRequestExtendedDetailAll();
        foreach (ProductRequestDetailDto prodReq in aList)
        {
            System.Console.WriteLine("Product Req ID: {0} - Product Name: {1}",
                prodReq.productRequestId.ToString(), prodReq.productName);
        }
    }
    public void ClientList()
    {
        List<ProductRequestDetailDto> aList = _ProductRequestServices.GetProductRequestExtendedDetailAll();
        foreach (ProductRequestDetailDto prodReq in aList)
        {
            System.Console.WriteLine("Product Req ID: {0} - Product Name: {1}",
                prodReq.productRequestId.ToString(), prodReq.firstName + " " + prodReq.lastName);
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
     ProductRequestServices _ProductRequestServices = new ProductRequestServices();

     MyServices MyServices = new MyServices(_ProductRequestServices);

        MyServices.ProductList();
        System.Console.WriteLine("============================");
        MyServices.ClientList();
        System.Console.ReadLine();
    }
}

下面是App.config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <connectionStrings>
    <add name="MDISContext" connectionString="metadata=res://*/ModelEntities.csdl|res://*/ModelEntities.ssdl|res://*/ModelEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=WIN-2012-SRVR-3;initial catalog=MDIS;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

如果仅删除entityFramework部分和数据库字符串,则会出现以下错误:

{“指定的架构无效。错误:\ r \ nModelEntities.ssdl(2,2):错误0152:未找到具有不变名称'System.Data.SqlClient'的ADO.NET提供程序的实体框架提供程序。提供程序已在应用程序配置文件的“ entityFramework”部分中注册。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkId=260882。“}

然后,如果我删除进行实体框架注册的配置部分,则会出现相同的错误。

如果我将EntityFramework添加到解决方案的控制台项目中,则所有这些错误都会消失,该项目也会将这些条目添加到app.config中

克劳编码器

存储库层将在为运行中的应用程序域加载的配置文件中查找EF配置。因此,是的,您的控制台应用程序需要配置,并且需要EF引用。如果您的存储库位于外部服务或其他进程中,则不需要EF引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我存储的钥匙串数据是否仅限于我的应用程序?

来自分类Dev

我可以使用 root 登录 phpMyAdmin,即使它仅限于本地主机

来自分类Dev

在webapi中调用带有crud方法的实体框架层需要引用数据层中的实体

来自分类Dev

我可以在表示层中访问CAShapeLayer的path属性吗?

来自分类Dev

我需要在Laravel中验证数据用于查询吗?

来自分类Dev

Rstudio 绘图查看器仅限于观察次数,还是我的 R 代码有问题?

来自分类Python

是否可以有多个PyPlot窗口?还是我仅限于子图?

来自分类Dev

为什么我的愿望清单仅限于一项?

来自分类Dev

如何修改我的控制器以使查询仅限于用户 ID?

来自分类Dev

我是否需要在实体框架6中使用POCO类

来自分类Dev

存储库是否仅限于域驱动设计中的数据库?

来自分类Dev

面板数据的长期变化,但仅限于行中的某些值

来自分类Dev

TensorFlow仅限于神经网络吗?

来自分类Dev

如何将 redux saga yield 导入我的 detox + jest 测试文件。我需要在我的测试设置中访问存储在 redux 存储中的数据

来自分类Dev

为什么我需要在我的打字稿对象中访问 `default`?

来自分类Dev

QuickCheck仅限于某些数据构造函数

来自分类Dev

如何使我的代码在所有工作表中都能正常工作,而不仅限于当前活动工作表中?

来自分类Dev

我需要在C ++中对齐吗?

来自分类Dev

我想首先查看登录页面,即使任何用户想要访问其他页面也需要在Spring Security中重定向到登录页面

来自分类Dev

将Oracle Apex中的数据加载表用于我有权访问的表

来自分类Dev

拖放仅限于jQuery plus中的父对象

来自分类Dev

Microsoft Graph 中的架构扩展仅限于租户?

来自分类Dev

tkinter 中的消息框是否仅限于显示字母?

来自分类Dev

我需要缩小访问报告中可提取的数据?

来自分类Dev

实体框架的数据访问结构

来自分类Dev

我们可以在独立的应用程序中使用数据访问层吗?

来自分类Dev

如何将字符串转换为int128值?目前我仅限于int64

来自分类Dev

即使我的应用程序不运行,GHC运行时也可以访问旧数据吗?

来自分类Dev

我需要在Symfony框架中关闭显示错误

Related 相关文章

  1. 1

    我存储的钥匙串数据是否仅限于我的应用程序?

  2. 2

    我可以使用 root 登录 phpMyAdmin,即使它仅限于本地主机

  3. 3

    在webapi中调用带有crud方法的实体框架层需要引用数据层中的实体

  4. 4

    我可以在表示层中访问CAShapeLayer的path属性吗?

  5. 5

    我需要在Laravel中验证数据用于查询吗?

  6. 6

    Rstudio 绘图查看器仅限于观察次数,还是我的 R 代码有问题?

  7. 7

    是否可以有多个PyPlot窗口?还是我仅限于子图?

  8. 8

    为什么我的愿望清单仅限于一项?

  9. 9

    如何修改我的控制器以使查询仅限于用户 ID?

  10. 10

    我是否需要在实体框架6中使用POCO类

  11. 11

    存储库是否仅限于域驱动设计中的数据库?

  12. 12

    面板数据的长期变化,但仅限于行中的某些值

  13. 13

    TensorFlow仅限于神经网络吗?

  14. 14

    如何将 redux saga yield 导入我的 detox + jest 测试文件。我需要在我的测试设置中访问存储在 redux 存储中的数据

  15. 15

    为什么我需要在我的打字稿对象中访问 `default`?

  16. 16

    QuickCheck仅限于某些数据构造函数

  17. 17

    如何使我的代码在所有工作表中都能正常工作,而不仅限于当前活动工作表中?

  18. 18

    我需要在C ++中对齐吗?

  19. 19

    我想首先查看登录页面,即使任何用户想要访问其他页面也需要在Spring Security中重定向到登录页面

  20. 20

    将Oracle Apex中的数据加载表用于我有权访问的表

  21. 21

    拖放仅限于jQuery plus中的父对象

  22. 22

    Microsoft Graph 中的架构扩展仅限于租户?

  23. 23

    tkinter 中的消息框是否仅限于显示字母?

  24. 24

    我需要缩小访问报告中可提取的数据?

  25. 25

    实体框架的数据访问结构

  26. 26

    我们可以在独立的应用程序中使用数据访问层吗?

  27. 27

    如何将字符串转换为int128值?目前我仅限于int64

  28. 28

    即使我的应用程序不运行,GHC运行时也可以访问旧数据吗?

  29. 29

    我需要在Symfony框架中关闭显示错误

热门标签

归档