繁体   English   中英

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

[英]“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM