“序列不包含匹配元素”使用Effort在EF映射中设置HasColumnType(“varchar”)

.net c# effort entity-framework-6

我有以下实体框架(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单元测试)给出错误时,我使用他的技术绕过实体映射配置



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因