我正在使用.Net
API项目。麻烦的是,我有一台慢速计算机而且我正在使用VS 2013
。一段时间后我安装了VS 2015
,它完全有效,直到我删除了VS 2013
。此外,卸载VS 2013
非常困难,因为我必须跟进本指南: Cannot uninstall, install or repair Visual Studio 2012 & 2013(下载整个设置,并使用命令行)。现在的问题是,现在SQL服务器不接受我传递的ManagerIds和WorkerIds。
我的文档类:
public class ConstructionSite
{
public int Id { get; set; }
public int CreatorId { get; set; }
public List<int> ManagerIds { get; set; }
public List<int> WorkerIds { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsActive { get; set; }
}
但是当我点击&#34;显示表数据&#34;按钮,它只给我这种类型的视图:
我尝试更改Configuration.cs类种子方法,如下所示:
protected override void Seed(ReportRest.Models.ApplicationDbContext context)
{
context.ConstructionSites.AddOrUpdate(new ConstructionSite
{
CreatorId = 2,
CreatedAt = new DateTime(2000, 01, 01),
IsActive = false,
ManagerIds = new List<int> {1},
WorkerIds = new List<int> {2},
});
}
然后我删除了现有的Migrations文件夹,打开了Nugget Package Manager Console并解除了这些命令: 启用的迁移 首先添加迁移 更新数据库。 不幸的是,这并没有帮助我恢复ManagerIds和WorkerIds。所以,在搞乱不稳定的微软设置之前,我想问你是否有办法提醒我的数据库忘记了变量。提前谢谢!
答案 0 :(得分:2)
不确定缺少哪些列,因为所有4个普通列都显示在数据库中,并且两个列表应该正常存储在自己的数据库表中。
但是如果您使用ASP.net和EntityFramework的默认设置并且您已经有一个Migrations文件夹,那么在数据库中也应该有一个&#34; __ MigrationHistory&#34; -Table。
意味着,如果您删除了旧的Migrations文件夹,则还需要删除该表的条目。之后,您可以创建一个新的&#34; Add-Migration InitialCreate&#34;并且应该首先完成当前代码库的迁移。
//用于创建新的初始Datbase-Update以获得未来更改的工作迁移:
答案 1 :(得分:1)
如果你想与经理和工人建立一对一的关系,你必须创建这样的东西:
public class MyDbContext : DbContext
{
public DbSet<ConstructionSite> ConstructionSites { get; set; }
public DbSet<Manager> Managers { get; set; }
public DbSet<Worker> Workers { get; set; }
public MyDbContext()
: base("YourConnectionStringName")
{
}
}
public class ConstructionSite
{
public Guid Id { get; set; }
public int CreatorId { get; set; }
public List<Manager> Managers { get; set; }
public List<Worker> Workers { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsActive { get; set; }
}
public class Manager
{
public Guid Id { get; set; }
public string Name { get; set; }
public Guid ConstructionSiteId { get; set; }
}
public class Worker
{
public Guid Id { get; set; }
public string Name { get; set; }
public Guid ConstructionSiteId { get; set; }
}
这会创建您想要的关系