【发布时间】:2017-10-06 15:02:38
【问题描述】:
我有一个 MVC 应用程序,其中包含一个名为 DataAccess 的类,该类从数据库中检索数据。我添加了 asp.Net Core 应用程序,并在 asp.Net Core 应用程序中引用了 MVC 应用程序。 问题是当我调用其中一个 DataAccess 方法并编译解决方案时,我得到一个错误:
错误 CS0012 类型“DataTable”是在一个程序集中定义的,该程序集是 未参考。您必须添加对程序集“System.Data”的引用, 版本=4.0.0.0,文化=中性, 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();
}
}
谁能给我建议?
【问题讨论】:
-
你能检查一下你的参考资料吗?我想你不会在它下面看到system.data。如果是这样,请将其添加为参考
-
您必须添加对程序集 'System.Data... 的引用...(添加引用 > 程序集 > 框架)。
-
是的,所以您的库是针对 .NET Framework 而不是 .NET Standard 编译的?或者您没有对 System.Data 的引用。
-
您是否尝试从 AspNetCore 引用 MVC 4/5?正如 CodeCaster 所提到的,您将无法这样做,因为 MVC 4/5 位于 .NET Framework 上,而 AspNetCore 位于 .NET Core 上(除非您的 AspNetCore 应用程序以 .NET Framework 为目标)。您最好将共享功能放入其自己的 .NET Standard 类库中,以便可以从两个 UI 框架和两个平台上引用它。
-
我试图引用 MVC 4。我试图从引用的 MVC 项目中的另一个类中调用一个方法,该类不使用数据库并且它有效,这意味着错误仅发生在从中检索数据的类中数据库。我检查了引用的项目并且 System.Data 在那里。在 .net Core 应用中,我添加了 System.Data.Common
标签: c# sql asp.net-mvc asp.net-core