2017-02-21 85 views
0

我使用的是代码优先的概念,并试图向Models文件夹中添加新类,以期在SQL Server数据库中创建新表。我添加了添加迁移错误:未将对象引用设置为对象的实例

Public Overridable Property Diagnosis As DbSet(Of Diagnosis) 

在DBContext.vb中。

然后在包管理器控制台中,我输入了Add-Migration Diagnosis。但是,下面的错误出来了。为什么是这样?任何人都可以帮我吗?

Object reference not set to an instance of an object.

完全错误的软件包管理器控制台:

System.NullReferenceException: Object reference not set to an instance of an object. 
    at System.Web.UI.ParseChildrenAttribute.GetHashCode() 
    at System.Collections.Generic.ObjectEqualityComparer`1.GetHashCode(T obj) 
    at System.Linq.Set`1.InternalGetHashCode(TElement value) 
    at System.Linq.Set`1.Find(TElement value, Boolean add) 
    at System.Linq.Enumerable.<ExceptIterator>d__72`1.MoveNext() 
    at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 
    at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 
    at System.Data.Entity.ModelConfiguration.Utilities.AttributeProvider.<GetAttributes>b__3(PropertyInfo pi) 
    at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) 
    at System.Data.Entity.ModelConfiguration.Utilities.AttributeProvider.GetAttributes(PropertyInfo propertyInfo) 
    at System.Data.Entity.ModelConfiguration.Conventions.PropertyAttributeConfigurationConvention`1.<.ctor>b__0(ConventionTypeConfiguration ec) 
    at System.Data.Entity.ModelConfiguration.Conventions.TypeConvention.ApplyCore(Type memberInfo, ModelConfiguration modelConfiguration) 
    at System.Data.Entity.ModelConfiguration.Conventions.TypeConventionBase.Apply(Type memberInfo, ModelConfiguration modelConfiguration) 
    at System.Data.Entity.ModelConfiguration.Configuration.ConventionsConfiguration.ApplyModelConfiguration(Type type, ModelConfiguration modelConfiguration) 
    at System.Data.Entity.ModelConfiguration.Conventions.Convention.ApplyModelConfiguration(Type type, ModelConfiguration modelConfiguration) 
    at System.Data.Entity.ModelConfiguration.Configuration.ConventionsConfiguration.ApplyModelConfiguration(Type type, ModelConfiguration modelConfiguration) 
    at System.Data.Entity.ModelConfiguration.Mappers.TypeMapper.MapComplexType(Type type, Boolean discoverNested) 
    at System.Data.Entity.ModelConfiguration.Mappers.PropertyMapper.MapPrimitiveOrComplexOrEnumProperty(PropertyInfo propertyInfo, Func`1 structuralTypeConfiguration, Boolean discoverComplexTypes) 
    at System.Data.Entity.ModelConfiguration.Mappers.PropertyMapper.MapIfNotNavigationProperty(PropertyInfo propertyInfo, EntityType entityType, Func`1 entityTypeConfiguration) 
    at System.Data.Entity.ModelConfiguration.Mappers.TypeMapper.<>c__DisplayClass14.<MapEntityType>b__e(PropertyMapper m, PropertyInfo p) 
    at System.Data.Entity.ModelConfiguration.Mappers.TypeMapper.MapStructuralElements[TStructuralTypeConfiguration](Type type, ICollection`1 annotations, Action`2 propertyMappingAction, Func`1 structuralTypeConfiguration) 
    at System.Data.Entity.ModelConfiguration.Mappers.TypeMapper.MapEntityType(Type type) 
    at System.Data.Entity.ModelConfiguration.Mappers.NavigationPropertyMapper.Map(PropertyInfo propertyInfo, EntityType entityType, Func`1 entityTypeConfiguration) 
    at System.Data.Entity.ModelConfiguration.Mappers.TypeMapper.MapEntityType(Type type) 
    at System.Data.Entity.DbModelBuilder.MapTypes(EdmModel model) 
    at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) 
    at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) 
    at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) 
    at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
    at System.Data.Entity.Internal.LazyInternalContext.get_ModelBeingInitialized() 
    at System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer) 
    at System.Data.Entity.Utilities.DbContextExtensions.<>c__DisplayClass1.<GetModel>b__0(XmlWriter w) 
    at System.Data.Entity.Utilities.DbContextExtensions.GetModel(Action`1 writeXml) 
    at System.Data.Entity.Utilities.DbContextExtensions.GetModel(DbContext context) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration) 
    at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run() 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName, String language, String rootNamespace, Boolean ignoreChanges) 
    at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges) 
    at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
Object reference not set to an instance of an object. 

我不知道这是否是相关与否,但在我的web.config中,有一个默认的连接是已经预当我第一次创建我的项目时设置。当我第一次做Enable-Migrations时,我不得不指定它是哪个连接。我已删除该行,但仍然无效。

+0

你已经能够成功地给你建在尝试命令之前解决方案?另外..请确保您的包管理器控制台中的命令针对安装了实体Gramework的正确Project。 – Derek

+0

@Derek 0成功,0失败,1最新,0跳过。在构建解决方案后,我已经尝试过在包管理器控制台中进行添加迁移,但仍然存在相同的错误通过“违反正确的项目”,在默认项目下拉列表中选择我的项目名称? – Nurul

+0

我不知道你的解决方案是如何分解的,但如果你有多个项目,你需要确保包管理器控制台的目标是安装了实体框架的项目。 – Derek

回答

0

以前,当我做附加迁移,但没有工作,因为我只是创建了一个类,并添加相应的字符串的声明,整数,等,像这样的变量:

Public Property id As String 

现在突然闪入我的脑海,我不得不放弃对每一个变量,如下面的更详尽的描述:

<Key> 
<StringLength(20)> 
Public Property id As String 

现在,它的工作原理=')

相关问题