[英]Effort throws InvalidOperationException: Sequence contains more than one matching element
[英]“Sequence contains no matching element” setting HasColumnType(“varchar”) in EF Mappings using Effort
我具有以下实体框架(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
继承public class EnterprisePaycorCodeFirstContext : DbContext
该类是我初始化实体映射的地方:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new FileStoreDocumentEntityMapping());
难道是因为我使用的是Effort MemoryContext与Real DB上下文?
public class MemoryEnterprisePaycorCodeFirstContext : EnterprisePaycorCodeFirstContext
{
public MemoryEnterprisePaycorCodeFirstContext()
: base(DbConnectionFactory.CreateTransient())
{
Database.CreateIfNotExists();
}
我知道那是什么。 原来我使用的是Effort
库,它不支持@Balah指出的某些列类型。 当我遇到“内存上下文: 工作量(EF单元测试)”错误时,我用他的技术绕过了实体映射配置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.