我有以下實體框架(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:Sequence不包含匹配的元素 ”
我在相關文章中讀到,如果將無效類型傳遞給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();
}
我想到了它是什麼。事實證明我正在使用Effort
庫,它不支持@Balah指出的某些列類型。當我從我的內存上下文: 努力(EF單元測試)給出錯誤時,我使用他的技術繞過實體映射配置