在 ASP.NET MVC 中,将身份验证模型移至 Class 库
In ASP.NET MVC, move Authentication Models to a Class Library
我正在 ASP.NET MVC 5 中使用 Entity Framework 6 Code First 开发一个新项目。
当前状态
我在一个解决方案中有两个项目。一个是前端 (MVC),另一个是 Class 库,我希望它能容纳我所有的模型 classes(不是 ViewModels)。
众所周知,当您开始一个新的 MVC 项目时,标识模型位于 [Models] 文件夹中。由于这些在逻辑上属于我的 Class 图书馆项目,我想将它们移到那里。
我尝试了什么
在 [Authentication] 文件夹中,我已经创建了一个 ApplicationUser.cs
class。现在只要看看 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
class 中连接字符串的名称?
我希望驱动此应用程序的所有实体都位于一个数据库中。
IdentityModel
文件中使用的超级 class IdentityUser
来自 Microsoft ASP.NET Identity EntityFramework 包,不是 .Net Framework 4.5 的一部分。
您需要将此 nuget 包和依赖项添加到项目中 BB.DOMAIN
。
我正在 ASP.NET MVC 5 中使用 Entity Framework 6 Code First 开发一个新项目。
当前状态
我在一个解决方案中有两个项目。一个是前端 (MVC),另一个是 Class 库,我希望它能容纳我所有的模型 classes(不是 ViewModels)。
众所周知,当您开始一个新的 MVC 项目时,标识模型位于 [Models] 文件夹中。由于这些在逻辑上属于我的 Class 图书馆项目,我想将它们移到那里。
我尝试了什么
在 [Authentication] 文件夹中,我已经创建了一个 ApplicationUser.cs
class。现在只要看看 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
class 中连接字符串的名称?
我希望驱动此应用程序的所有实体都位于一个数据库中。
IdentityModel
文件中使用的超级 class IdentityUser
来自 Microsoft ASP.NET Identity EntityFramework 包,不是 .Net Framework 4.5 的一部分。
您需要将此 nuget 包和依赖项添加到项目中 BB.DOMAIN
。