【发布时间】:2018-02-01 19:45:15
【问题描述】:
我已经使用 EntityFrameworkCore.SqlServer 2.0 开发了 asp .net core wep api 2.0 应用程序。它是使用数据库优先方法开发的。当尝试使用 dbcontext 应用程序访问实体时,应用程序将中断模式。我找不到应用程序状态变为中断状态的原因。请帮助解决这个问题。
下面是 DBContext 类中的 OnConfiguring 方法。
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(@"Server=(local);Database=VotingAppDB;User ID=sa;Password=123;");
}
}
以下代码块用于访问控制器中的 dbcontext 实体
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
VotingAppDBContext context = new VotingAppDBContext();
var questions = context.Questions.ToList();
return new string[] { "value1", "value2" };
}
【问题讨论】:
-
我有确切的问题。到目前为止我不知道如何解决它。
-
所以...您的数据库有模式吗?当我删除我的架构然后搭建脚手架时,它开始工作了。
-
我发现了我的问题。我使用 VARCHAR(max) 来定义列长度。不知何故 EF 不理解这一点并默默地失败
-
好吧,我对 PrimaryKey 的自引用键不正确而告终。而不是抛出错误并告诉我它只是做了应用程序中断模式。基本上逐表仔细检查你的模式表,并确定你在哪里犯了严重错误。
-
非常感谢。这就是原因。我的架构也有自引用主键。当我删除它时,它可以正常工作。我不知道为什么 Visual Studio 会这样,它对用户不友好。是否有任何技术可以追踪此类问题?
标签: asp.net-core entity-framework-6 asp.net-core-mvc entity-framework-core asp.net-core-webapi