2017-02-21 33 views
0

Я использую концепцию кода и просто пытаюсь добавить новый класс в папку «Модели» в надежде создать новую таблицу в базе данных SQL-сервера. я добавилОшибка добавления-миграции: ссылка на объект не установлена ​​в экземпляр объекта

Public Overridable Property Diagnosis As DbSet(Of Diagnosis) 

в DBContext.vb.

Затем в консоли диспетчера пакетов я вошел в Add-Migration Diagnosis. Но ниже появляется ошибка. Почему это? Может ли кто-нибудь помочь мне, пожалуйста?

Object reference not set to an instance of an object.

Полная ошибка в Package Manager Console:

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

вы смогли успешно построить вас r перед попыткой команды? Кроме того, убедитесь, что вы запустили команду в консоли диспетчера пакетов против правильного проекта, в котором установлен Entity Gramework. – Derek

+0

@Derek 0 удалось, 0 не удалось, 1 обновлен, 0 пропущен. Я попытался добавить-перенос в консоли диспетчера пакетов после решения сборки, но все равно такую ​​же ошибку. В разделе «против правильного проекта» выбирается имя моего проекта в раскрывающемся списке «Проект по умолчанию»? – Nurul

+0

Я не знаю, как ваше решение разбито, но если у вас несколько проектов, вы должны убедиться, что консоль менеджера пакетов нацелена на проект с установленной инфраструктурой сущности. – Derek

ответ

0

Раньше, когда я сделал надстройку миграцию, это не сработало, потому что я просто создал класс и добавил декларацию соответствующих строк, целое число, и т.д. как переменные, как это:

Public Property id As String 

Теперь это вдруг пришел в голова, что я должен был дать более сложное описание на каждом из таких переменных, как показано ниже:

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

Теперь она работает = ')

 Смежные вопросы

  • Нет связанных вопросов^_^