【发布时间】:2018-08-14 17:47:00
【问题描述】:
我有以下问题:我试图将我的DbContext 类放入一个单独的类库中,但它不起作用。
我收到以下错误:
使用“2”参数调用“SetData”的异常:“在程序集'Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本中键入'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' =15.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a' 未标记为可序列化。"
在 D:\Projekte\Seminar_Tool_Online\Seminar_Tool_Online\packages\EntityFramework.6.2.0\tools\EntityFramework.psm1:720 char:5
+ $domain.SetData('project', $project)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : 序列化异常使用“2”参数调用“SetData”的异常:“在程序集'Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本中键入'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject' =15.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a' 未标记为可序列化。"
在 D:\Projekte\Seminar_Tool_Online\Seminar_Tool_Online\packages\EntityFramework.6.2.0\tools\EntityFramework.psm1:721 char:5
+ $domain.SetData('contextProject', $contextProject)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : 序列化异常System.NullReferenceException:对象引用未设置为对象的实例。
在 System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetPropertyValue[T](项目项目,字符串 propertyName)
在 System.Data.Entity.Migrations.MigrationsDomainCommand.GetFacade(字符串配置类型名称,布尔值 useContextWorkingDirectory)
在 System.Data.Entity.Migrations.EnableMigrationsCommand.FindContextToEnable(String contextTypeName)
在 System.Data.Entity.Migrations.EnableMigrationsCommand.c__DisplayClass2.<.ctor>b__0()
在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)
对象引用未设置为对象的实例。
我有一个名为“Seminar_Tool_Online”的 ASP.NET MVC 5 项目,这是我的启动项目。配置文件中包含 Entity Framework 所需的一切。
<configSections>
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false"/>
</configSections>
<connectionStrings>
<add name="AccountConnection"
connectionString="Server=...; Database=...;User Id = ...; password=...; Integrated Security=False"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
我的类库被称为Seminar_Tool_Datenbank,具有以下DbContext 类:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("AccountConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
所以我在包管理器控制台中使用以下命令进行了尝试:
Enable-Migrations -EnableAutomaticMigrations -ProjectName Seminar_Tool_Datenbank -StartupProjectName Seminar_Tool_Online
我已经尝试过这里的解决方案:
- Enable-Migrations Exception calling "SetData" with "2" argument(s)
- https://www.codeproject.com/Tips/840863/Entity-Framework-Migrations-enabled-in-Data-Access
没有什么对我有用,我仍然得到同样的错误。在这两个项目中,我都使用 EF 6.2 和 .Net 4.5.1
有人可以帮我吗?
更新
这可能是问题吗?
Make EF NuGet package / migrations and EF Tools work with new csproj format
【问题讨论】:
标签: c# .net asp.net-mvc entity-framework dll