繁体   English   中英

我如何引用MVC项目中的类,该类使用asp.net核心从数据库中检索数据

[英]How can I reference a class in MVC project that retrieves data from database with asp.net core

我有MVC应用程序,其中包含一个名为DataAccess的类,该类从数据库检索数据。 我添加了asp.Net Core应用程序,并在asp.Net Core应用程序中引用了MVC应用程序。 问题是,当我调用DataAccess方法之一并编译解决方案时,出现错误:

错误CS0012在未引用的程序集中定义了类型'DataTable'。 您必须添加对程序集'System.Data,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。

请参阅以下代码以获取我的.net Core API:

using Microsoft.AspNetCore.Mvc;
using shopping;
using System.Collections.Generic;
using System.Data.Common;

    namespace ShoppingAPI.Controllers
    {
        [Route("api/[controller]")]
        public class ValuesController : Controller
        {
            // GET api/values
            [HttpGet]
            public IActionResult  Get()
            {
                DataAccess da = new DataAccess();
                da.GetDataTable("SELECT * FROM USERS;", new List<DbParameter>());
                return Ok();
            }
}

谁能告诉我?

快速解决方案

步骤1.确定正确的框架

假设您正在使用Visual Studio 2017,那么这里就是解决问题的方法。

  1. 右键单击您的项目,然后选择Edit *****.csproj

  2. .csproj文件中,您需要将目标框架替换为.NET Framework。

例如:

 // incorrect <TargetFramework>netcoreapp2.0</TargetFramework> // correct <TargetFramework>net462</TargetFramework> 

构架 来源: https : //docs.microsoft.com/en-us/dotnet/standard/net-standard

有关目标框架Moniker(TFM)的列表(即net47netstandard2.0netcoreapp2.0等),您可以查看以下链接: https : netcoreapp2.0 /标准/框架

步骤2.运行dotnet restore

转到输出窗口并运行dotnet restore

有时Visual Studio的行为可能不正确(取决于您安装的更新),因此您可能必须关闭并重新打开Visual Studio。 否则,有时清理/重建可能会成功。

我们要做什么?

根据您的评论,您注意到您正在尝试引用一个名为MVC4的项目,这意味着它可能不是使用.NET Core框架直接支持的库编写的。 相反,它将由.NET Framework(带有.NET Core)支持。

上面的解决方案正是为您完成的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM