首页 > 解决方案 > 我无法连接到使用从模型生成的实体框架创建的数据库实例

问题描述

我创建了一个 Web 应用程序和一个模型。然后我生成了一个dbcontext类和一个数据库实例。构建项目后,我尝试从 Visual Studio 中的服务器资源管理器连接到该数据库,但无法连接。

我尝试测试连接但出现错误:

无法测试此连接,因为指定的数据库不存在或对指定用户不可见

每当我尝试搭建视图或控制器时,我都会收到此错误:

无法检索元数据 ... 在模型生成期间检测到一个或多个验证错误
ModelsTable 基于未定义键的类型 TestModel。

当我在控制器类中创建数据库对象并编写查询时出现相同的错误,没有定义键。

还对软件包进行了更新并再次尝试。我认为我的连接字符串是正确的。

这是我的模型。

public class TestModel
{
    [Key]
    public string ID { get; } = Guid.NewGuid().ToString();
    public string AreaName { get; set; }
    public bool IsWorking { get; set; }
    public string UserName { get; set; }
    public DateTimeOffset Time { get; set; }
}

所以我不能使用脚手架、实体框架和编写查询。

这是我的 dbcontext 类。

 public class ModelDB : DbContext
{

    public ModelDB()
        : base("name=ModelDB")
    {
    }


    public DbSet<TestModel> ModelsTable { get; set; }
}

我在互联网上搜索尝试了建立的解决方案,但不明白也无法解决。我希望没有问不必要的问题。谢谢你的帮助。

标签: asp.net.netsql-serverentity-framework

解决方案


你在使用代码优先吗?如果是这样,我认为您需要生成迁移。在 Visual Studio 中,转到包管理器控制台并运行以下命令:

  • 添加迁移“modelClassName”
  • 更新数据库 - 详细

有关详细信息,请参阅此链接:https ://msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx

您缺少集合;在字段 ID 中。


推荐阅读