asp.net - 我无法连接到使用从模型生成的实体框架创建的数据库实例
问题描述
我创建了一个 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; }
}
我在互联网上搜索尝试了建立的解决方案,但不明白也无法解决。我希望没有问不必要的问题。谢谢你的帮助。
解决方案
你在使用代码优先吗?如果是这样,我认为您需要生成迁移。在 Visual Studio 中,转到包管理器控制台并运行以下命令:
- 添加迁移“modelClassName”
- 更新数据库 - 详细
有关详细信息,请参阅此链接:https ://msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx
您缺少集合;在字段 ID 中。