【问题标题】:In an Asp.net project using identity v2 and Entity Framework how can I move all my code first models and User model identity to a new project在使用标识 v2 和实体框架的 Asp.net 项目中,如何将所有代码优先模型和用户模型标识移动到新项目
【发布时间】:2014-11-22 15:38:50
【问题描述】:

我有一个 web API 2 项目,我使用实体框架代码优先模型,它有一些外键来标识绑定到 webapi 2 项目的版本 2 用户表。由于我有另一个提供者项目,我在我的服务(web api 2)项目中引用了提供者,并且由于提供者需要对模型的引用,将模型放入服务项目中会导致循环引用。

长话短说,我需要能够将代码优先模型移动到一个名为Models 的新项目中,以便在两个项目中使用。问题是,无论我多么努力,我都无法将 IdentityUser 模型移动到单独的项目中,因为它需要引用 Microsoft.AspNet.Identity.EntityFramework

以下是我使用的模型之一的示例,ApplicationUser 派生自 IdentityUser

public class Application
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Owner { get; set; }
    public string Company { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PaymentInfo { get; set; }
    public DateTime CreateDate { get; set; }
    public DateTime ExpireDate { get; set; }

    public virtual ApplicationUser User { get; set; }
    public virtual ICollection<Billing> Billings { get; set; }
}

【问题讨论】:

  • 嗯,您是否尝试在新项目中添加对Microsoft.AspNet.Identity.EntityFramework 的引用?
  • 感谢您的回复,是的,不幸的是,需要导入一堆其他程序集。我不希望我的模型项目获得这些参考。但我想那是我现在唯一的选择。再次感谢。
  • 如果您使用 NuGet 添加Entity Framework package,它会为您添加所有引用。
  • 目前没有好的/简单的方法可以避免将 EF 添加到您的模型项目中。我以前被这个咬过,这里有很多关于它的问题。到目前为止,我还没有看到这个问题的优雅解决方案 -((

标签: asp.net entity-framework ef-code-first asp.net-mvc-5 asp.net-identity


【解决方案1】:

几个月前我遇到了同样的问题。

ApplicationUser 必须从 IdentityUser 继承。当您使用 Identity 框架时,没有其他方法可以将项目的所有模型保留在一个类库项目中,而无需使用所需的引用。

我的建议是使用单独的项目(类库)来处理所有身份信息,而不是将其保留在您的 Web API 2 项目中。然后,您可以在需要时在任何地方引用该项目。这将避免在模型项目上引用 Web Api 2 项目。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2020-01-31
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    相关资源
    最近更新 更多