我应该如何使用新的 class 库 nuget 包设计我的 visual studio 解决方案

How should I design my visual studio solutions with the new class library nuget package

我有 2 个文件夹:

My-WebApplication
My-WebService

两者都是额外visual studio解决方案中的2个asp.netmvc 6.0项目。

两者都需要共享自定义 DbContext class 使用 Entity Framework 7.

我用Visual Studio 2015 开发反对

"frameworks" : { "net451" }

您将在哪里创建自定义 DbContext class 以及如何使用 Visual Studio 2015 年关于 [= 的最新功能在两个 VS 解决方案之间共享它46=] 库作为 nuget 包 - 如果有帮助的话 -

我是否应该创建一个 class 库并将其放入与其他文件夹相同级别的第三个文件夹中的第三个 share.sln 文件中?然后两个解决方案都引用了这个 class library?

您可以在单独的程序集(包 class 库)中使用通用 DbContext。 Startup.cs

ConfigureServices中的每个项目单独启动DbContext
services.AddEntityFramework()
            .AddSqlServer()
            .AddDbContext<YourDbContext>(options => options.UseSqlServer(Configuration["Data:ConnectionString"]));

需要为project.json

中的每个项目指定依赖
"dependencies": {
    ...
    "YourProject.Data": "1.0.0.0",
    ...
}

其中 YouProject.Data 是一个包含 YourDbContext.

的程序集

您还需要在 YouProject.Data project.json 中添加依赖项和命令,以便为您的上下文配置迁移:

"dependencies": {
    "EntityFramework.SqlServer": "7.0.0-beta7",
    "EntityFramework.Commands": "7.0.0-beta7"
}
"commands": {
    "ef": "EntityFramework.Commands"
},

您可以使用下一个命令创建新的迁移(对于 MVC6 beta-7)

dnx ef migrations add NameOfMigraion -c YourDbContext -s YouApplicationProjectName

其中 YouApplicationProjectName 是您的 asp.net mvc6 项目名称的名称,例如 My-WebApplication我的网络服务

希望对您有所帮助。