【发布时间】:2018-11-02 16:03:45
【问题描述】:
我有以下实体框架 (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:序列不包含匹配元素”
我在related post 中读到,如果您将无效类型传递给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();
}
【问题讨论】:
-
您好,是否可以共享在您的单元测试中引发错误的代码?
-
@philreed 我刚刚添加了这些细节。谢谢
-
谢谢。您在哪一行看到错误
System.InvalidOperationException: Sequence contains no matching element? -
我在帖子中添加一个项目到
DistributionListSelectionCriteriaDepartmentEntities的测试方法的第一行
标签: c# .net entity-framework-6 effort