У меня есть следующее сопоставление Entity Framework (v6.1.3):
public class FileStoreDocumentEntityMapping : EntityTypeConfiguration<FileStoreDocumentEntity>
{
public FileStoreDocumentEntityMapping()
{
Property(x => x.FileStoreDownloadUrl)
.HasColumnName("FileStoreDetailsUrl")
.HasColumnType("varchar")
.HasMaxLength(1000);
Property(x => x.FileStoreVersion)
.HasColumnName("FileStoreVersion")
.HasColumnType("varchar")
.HasMaxLength(100);
}
}
Оба столбца имеют тип данных = "varchar" в моей базе данных, и размеры указаны правильно
Однако, некоторые из моих модульных тестов терпят неудачу с этой ошибкой:
" System.InvalidOperationException: последовательность не содержит соответствующего элемента "
Я прочитал в сообщении , что вы можете получить ошибку выше, если передадите недопустимый тип методу HasColumnType
, но в моем случае «varchar» должен быть действительным.
Есть идеи, что может быть не так?
Вот как эти свойства определены в моей сущности:
public virtual string FileStoreVersion
{
get;
set;
}
public virtual string FileStoreDetailsUrl
{
get;
set;
}
Вот пример одного теста, который не проходит в первой строке:
[TestMethod]
public void Delete_ReturnsSuccess()
{
_context.DistributionListSelectionCriteriaDepartmentEntities.Add(_distributionListSelectionCriteriaDepartmentEntity);
_context
в данном случае имеет тип MemoryEnterprisePaycorCodeFirstContext
:
private void InitializeTestObjects()
{
_context = new MemoryEnterprisePaycorCodeFirstContext();
Что наследует от моего public class EnterprisePaycorCodeFirstContext : DbContext
В этом классе я инициализирую свои сопоставления сущностей:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new FileStoreDocumentEntityMapping());
Может ли это быть, потому что я использую Усилие MemoryContext против контекста Real DB?
public class MemoryEnterprisePaycorCodeFirstContext : EnterprisePaycorCodeFirstContext
{
public MemoryEnterprisePaycorCodeFirstContext()
: base(DbConnectionFactory.CreateTransient())
{
Database.CreateIfNotExists();
}