我有以下实体框架(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());
这可能是因为我使用的是Effort MemoryContext 与 Real DB 上下文吗?
public class MemoryEnterprisePaycorCodeFirstContext : EnterprisePaycorCodeFirstContext
{
public MemoryEnterprisePaycorCodeFirstContext()
: base(DbConnectionFactory.CreateTransient())
{
Database.CreateIfNotExists();
}