我在ASP.net MVC中遇到以下情况-代码优先
[Table("api")]
public class Api
{
[Column("Id")]
public int Id { get; set; }
[Column("api_key")]
public string ApiKey { get; set; }
public virtual BookingPluginConfig BookingPluginConfig { get; set; }
}
public class BookingPluginConfig
{
[Key,ForeignKey("Api")]
public int ApiId { get; set; }
public virtual Api Api { get; set; }
}
当前到“ BookingPluginConfig”的“ Api”表具有一对一关系-我想将其更改为一对多
“ BookingPluginConfig”表具有
[Key,ForeignKey("Api")]
public int ApiId { get; set; }
我要删除作为主键的该列,并且要添加新列作为主键(自动递增)
当前,此“ ApiId”既是主键又是外键。我想保持``ApiId''是外键而不是主键
现有表中已经有很多数据
我该怎么做?
答案 0 :(得分:0)
您修改后的BookingPluginConfig类:
public class BookingPluginConfig
{
[Key(), Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[ForeignKey("Api")]
public int ApiId { get; set; }
public virtual Api Api { get; set; }
}
Navigation属性,这是API类中唯一的更改:
//one to many relation to BookingPluginConfig
public virtual ICollection<BookingPluginConfig> BookingPluginConfigs { get; set; }
这就是添加新的主键并定义关系的全部。如果需要,请备份数据库,添加迁移并更新数据库。