[英]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,那么这里就是解决问题的方法。
右键单击您的项目,然后选择Edit *****.csproj
在.csproj
文件中,您需要将目标框架替换为.NET Framework。
例如:
// incorrect <TargetFramework>netcoreapp2.0</TargetFramework> // correct <TargetFramework>net462</TargetFramework>
来源: https : //docs.microsoft.com/en-us/dotnet/standard/net-standard
有关目标框架Moniker(TFM)的列表(即net47
, netstandard2.0
, netcoreapp2.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.