Ошибка с надстройкой Entity Framework: «значение не может быть нулевым»

1

Я работаю над веб-приложением mvc4 asp.net. Я хотел добавить миграцию, но на дисплее появляется ошибка, и я не знаю, как ее разрешить. Здесь код класса:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
namespace POCOs
{
public class Consultant
{
public int Id { get; set; }
public string Nom { get; set; }
public string Prenom { get; set; }
public string RefCommercial { get; set; }
public string DateNaissance { get; set; }
public int CIN { get; set; }
public string Fonction { get; set; }
public string Tel { get; set; }
public string Experience { get; set; }
public string Email { get; set; }
public HttpPostedFileBase CV { get; set; }
public ICollection<Prestation> prestations { get; set; }

public Consultant()
{
prestations = new HashSet<Prestation>();
}
}
}

и вот ошибка, которую я получаю, когда хочу добавить перенос:

Add-Migration
cmdlet Add-Migration at command pipeline position 1
Supply values for the following parameters:
Name: cv
System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary'2.FindEntry(TKey key)
at System.Collections.Generic.Dictionary'2.TryGetValue(TKey key, TValue& value)
at System.Data.Entity.ModelConfiguration.Configuration.Mapping.SortedEntityTypeIndex.Add(EdmEntitySet entitySet, EdmEntityType entityType)
at System.Data.Entity.ModelConfiguration.Configuration.Mapping.EntityMappingService.Analyze()
at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntityTypes(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest)
at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest)
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_CodeFirstModel()
at System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(DbContext context, XmlWriter writer)
at System.Data.Entity.Migrations.Extensions.DbContextExtensions.<>c__DisplayClass1.<GetModel>b__0(XmlWriter w)
at System.Data.Entity.Migrations.Extensions.DbContextExtensions.GetModel(Action'1 writeXml)
at System.Data.Entity.Migrations.Extensions.DbContextExtensions.GetModel(DbContext context)
at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext)
at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration)
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator()
at System.Data.Entity.Migrations.Design.ToolingFacade.GetPendingMigrationsRunner.RunCore()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Value cannot be null.
Parameter name: key 

Любая помощь?

Теги:
entity-framework

3 ответа

7

Поместите [NotMapped] на HttpPostedFileBase

Видеть это:

Значение не может быть нулевым. Имя параметра: степень

4

Я работаю в EF7. Я также получил эту ошибку и понятия не имел, что ее вызывает.

В конце концов я отследил его до того, что я сделал несколько рефакторингов пространства имен, поэтому мои классы моделей были в разных пространствах имен, чем в классе моментальных снимков (класс моментальных снимков использует строки для классификации классов!)

Я удалил файл моментального снимка и сделал фиктивную миграцию для обновления моментального снимка. Затем я удалил фиктивную миграцию, и после этого мои миграции снова работали правильно.

  • 0
    спасибо, решил мою ошибку, из-за моей невнимательности пространство имен неправильное
  • 0
    Спасибо, чувак, ты решил мою проблему, над которой я работал несколько дней. Я злился на это.
Показать ещё 1 комментарий
1

HttpPostedFileBase - это встроенный класс в пространстве имен System.Web. Это не будет признано EF. вы можете создать тип обертки, чтобы сохранить нужные вам данные.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню