我正在尝试将.net Web API应用程序迁移到Service app Fabric无状态.net核心API。我想使用实体框架。当我尝试查询数据库表时出现错误“ 无法加载C:\ SfDevCluster \ Data \ _App \ _Node_0 \ DRIHubType_App3 \ MUACAPIPkg.Code.1.0.0 \ x64 \ SNI.dll”
我尝试了所有类似添加sqlclient 4.0.0引用的操作,将框架更改为4.6等,但是没有任何效果。
public class DatabaseContext : DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options) : base(options)
{
}
public DbSet<Pubsuite> Pubsuite { get; set; }
}
==Startup Class code
services.AddDbContext<DatabaseContext>(opts => opts.UseSqlServer("server=srvername;database=dbname;User ID=user;password=password;"));
====Pubsuite class
public class Pubsuite
{
[Key]
public string username { get; set; }
public string pubsuites { get; set; }
}
public interface IPubsuiteRepository<T>
{
IEnumerable<T> GetPubsuites();
}
public class PubsuiteRepository : IPubsuiteRepository<Pubsuite>
{
readonly DatabaseContext _libraryContext;
public PubsuiteRepository(DatabaseContext context)
{
_libraryContext = context;
}
public IEnumerable<Pubsuite> GetPubsuites()
{
return _libraryContext.Pubsuite.ToList();
}
}
public class ValuesController : ControllerBase
{
private readonly IPubsuiteRepository<Pubsuite> _libraryRepository;
public ValuesController(IPubsuiteRepository<Pubsuite> libraryRepository)
{
_libraryRepository = libraryRepository;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
try
{
IEnumerable<Pubsuite> authors = _libraryRepository.GetPubsuites();
return new string[] { "value1", "value2" };
}
catch (Exception ex)
{
var mess = ex.Message;
return new string[] { mess };
}
}
}
}
错误:-
IEnumerable authors = _libraryRepository.GetPubsuites();
我在上一行出现错误。
解决上述问题的方法是,只需安装Visual Studio2019。实际上,Microsoft.EntityFrameworkCore.SqlServer,Microsoft.EntityFrameworkCore的最新包是3.1。我认为它更适合2019年。