簡體   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