“序列不包含匹配元素”使用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單元測試)給出錯誤時,我使用他的技術繞過實體映射配置



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow