sql-server - 来自 asp.net 核心的 SqlServer 连接神秘地失败了
问题描述
在下Ubuntu 18
,Startup.cs
我有这个连接字符串。注意Database=
:
var connectionStringOpts =
"Server=xxx.xx.xxx.xxx;Integrated Security=false;Trusted_Connection=false;Database=Options;User Id=xxxx;Password=xxxxxxx;Connection Timeout=100";
services.AddDbContext<OptionsDbContext>(o =>
o.UseSqlServer(connectionStringOpts));
DbContext
看起来像这样(例如,Opt_I30
是数据库的表Options
):
using Microsoft.EntityFrameworkCore;
using OptionsAPI.Entities;
namespace OptionsAPI.Services
{
public class OptionsDbContext : DbContext
{
public DbSet<Option> Opt_I30 { get; set; }
public DbSet<Option> Opt_I30ITM { get; set; }
public DbSet<Equity> Table_Underlying { get; set; }
public DbSet<OHLC> OHLC { get; set; }
public OptionsDbContext(DbContextOptions<OptionsDbContext> options)
: base(options)
{
Database.EnsureCreated();
}
}
}
在OptionsController.cs
,我尝试这样查询SqlServer
:
public class OptionsController : Controller
{
private System.DateTime globaldt = new System.DateTime(2017, 6, 1, 10, 0, 0);
//private string globaldtStr = "20170601T10:00:00";
private OptionsDbContext _context;
public OptionsController(OptionsDbContext context)
{
_context = context;
}
private System.Collections.Generic.List<Option>
GetOptionChainDataFrame(string symbol, string date)
{
List<Option> opts = null;
try
{
Console.WriteLine("In: GetOptionChainDataFrame");
DateTime quotedate = System.DateTime.Parse(date);
opts = _context.Opt_I30
.Where(x => x.UnderlyingSymbol == symbol &&
x.QuoteDatetime == quotedate &&
x.Root.Length == 3)
.Select(x => new Option{
UnderlyingSymbol = x.UnderlyingSymbol,
QuoteDatetime = x.QuoteDatetime,
Expiration = x.Expiration,
Strike = x.Strike,
OptionType = x.OptionType,
Bid = x.Bid,
Ask = x.Ask,
UnderlyingBid = x.UnderlyingBid,
UnderlyingAsk = x.UnderlyingAsk,
IV = Math.Round(x.IV, 4)
}
)
.OrderBy(x => x.QuoteDatetime)
.ThenBy(x => x.Expiration)
.ThenBy(x => x.OptionType)
.ThenBy(x => x.Strike)
.ToList()
;
}
catch(Exception ex)
{
Console.WriteLine("Option exception" + ex.ToString());
}
finally
{
}
return opts;
}
...
我得到这个错误。我不知道它在哪里获得“选项” From
(似乎是自动插入的),因为我说数据库是复数形式的“选项”。这令人抓狂,因为这曾经有效,我不知道发生了什么变化。
Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (81ms) [Parameters=[@__8__locals1_symbol_0='?' (Size = 450), @__quotedate_1='?' (DbType = DateTime2)], CommandType='Text', CommandTimeout='30']
SELECT [x].[UnderlyingSymbol], [x].[QuoteDatetime], [x].[Expiration], [x].[Strike], [x].[OptionType], [x].[Bid], [x].[Ask], [x].[UnderlyingBid], [x].[UnderlyingAsk], ROUND([x].[IV], 4) AS [IV]
FROM [Option] AS [x]
WHERE (([x].[UnderlyingSymbol] = @__8__locals1_symbol_0) AND ([x].[QuoteDatetime] = @__quotedate_1)) AND (CAST(LEN([x].[Root]) AS int) = 3)
ORDER BY [x].[QuoteDatetime], [x].[Expiration], [x].[OptionType], [x].[Strike]
System.Data.SqlClient.SqlException (0x80131904): Invalid object name 'Option'.
解决方案
推荐阅读
- sql - SQL Server:使用最底部行进行内部联接
- javascript - HttpClient.GetStringAsync() “您需要启用 JavaScript 才能运行此应用程序。”
- rx-swift - RxSwift combineLatest 从最后一个 Observable 发出所有重放的元素
- javascript - Javascript 使用正则表达式按数字分割
- python - 模型 keras 训练期间 fit_generator 中的问题
- sql-server - 将 SQL Server 查询转换为 h2 查询
- reactjs - 反应项目 plunkr - 设置
- node.js - s3 client.uploadFile() 挂起且没有错误
- firebase - Flutter 和 Firebase:升级 firebase 插件后 userCredential.credential.token 不再工作
- c++ - LLDB 中的重复命令