无法在实体框架中创建应用程序用户的外键



软件包管理器在尝试不同的事情时会丢弃错误。我想在我的" Yogaspace"实体中创建一个外国密钥,以创建"应用程序用户"实体。我在线查看了多个不同的线程,以查看如何完成此操作,我认为我的代码第一代码是正确的。这是我所做的,这是在更新数据库时我在软件包管理器中遇到的错误。

public class YogaSpace
{
    public int YogaSpaceId { get; set; }
    //other members left out to save space
    [MaxLength(128)]
    public string ApplicationUserRefId { get; set; }
    [ForeignKey("ApplicationUserRefId")]
    public virtual ApplicationUser ApplicationUser { get; set; }
}
 public class ApplicationUser : IdentityUser
{
    //other members left out to save space
    public virtual ICollection<YogaSpace> YogaSpaces { get; set; }
}

这是我在更新数据库时在包装管理器控制台中收到的错误消息。

执行sp_rename @objname = n'dbo.yogaspaces.user_id',@newname = n'applicationuserrefid', @objtype = n'column' system.data.sqlclient.sqlexception(0x80131904):parameter @objname是模棱两可的,或者声称的 @objtype(列)是错误的。

我正在创建没有'Yogaspace.user_id',似乎实体框架正在为我创建它。?为什么??所以我认为也许我需要将应用程序用户放入下面的上下文类中。

public DbSet<ApplicationUser> ApplicationUsers { get; set; }

我尝试了此并运行更新数据库并收到了此不同的错误消息。

不支持每个类型的多个对象集。对象集集"应用程序"one_answers"用户"都可以包含类型" Yogabandy.domainclasses.models.applicationuser"的实例。

我不确定我需要在这里做什么,但这是头痛!

这是现有架构上的初始迁移还是迁移?如果后者可能已经从上一个构建中的表上有User_Id列,并且由于您现在添加了显式列(ApplicationUserRefId),现在需要重命名现有列。

如果您发布迁移会有所帮助。

相关内容

  • 没有找到相关文章

最新更新