5

我正在使用Entity Framework 6 Code First在ASP.NET MVC 5中开发一个新项目。

当前状态

我在一个解决方案中有两个项目。一个是前端(MVC),另一个是一个类库,我希望它可以容纳我所有的模型类(不是 ViewModel)。

众所周知,当您开始一个新的 MVC 项目时,身份模型位于 [Models] 文件夹中。由于这些逻辑上属于我的类库项目,我想将它们移到那里。

解决方案探索者

我尝试过的

在 [Authentication] 文件夹中,我继续创建了一个ApplicationUser.cs类。现在通过简单地查看IdentityModels.cs我知道我需要参考Microsoft.AspNet.Identity其他内容。

所以我右键单击 BB.DOMAIN 项目的参考,然后单击{添加参考}。但是我在任何地方都看不到Microsoft.AspNet.Identity图书馆!

添加参考

需要澄清

我在这里做正确的事吗?我目前的想法是我正在做一些通常不应该做的事情!但是在你阅读的任何地方,你都会被告知所有核心实体通常应该放在一个地方。

另一件我已经很困惑但还没有解决的问题是:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

当我添加ApplicationDbContext.cs到 BB.DOMAIN 中的 [Authentication] 文件夹时。为了使所有内容都位于同一个数据库中,我是否只需将base("DefaultConnection")连接字符串的名称更改为位于 [Context] 文件夹内的其他DbContext类中的任何名称?

我希望所有驱动这个应用程序的实体都放在一个数据库中。

4

1 回答 1

4

IdentityUser文件中使用的超类IdentityModel来自Microsoft ASP.NET Identity EntityFramework包,而不是 .Net Framework 4.5 的一部分。

您需要将此 nuget 包和依赖项添加到项目BB.DOMAIN中。

于 2015-02-01T12:35:26.393 回答