![](/img/trans.png)
[英]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.