"Sequenz enthält kein passendes Element" Einstellung HasColumnType ("varchar") in EF-Mappings mit Effort

.net c# effort entity-framework-6

Frage

Ich habe die folgende Zuordnung von Entity Framework (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);
    }
}

Beide Spalten haben in meiner Datenbank den Datentyp "varchar" und die Größen sind korrekt: Geben Sie hier die Bildbeschreibung ein

Einige meiner Gerätetests schlagen jedoch mit diesem Fehler fehl:

" System.InvalidOperationException: Sequenz enthält kein übereinstimmendes Element "

Ich habe in einem verwandten Beitrag gelesen, dass Sie den Fehler oben erhalten können, wenn Sie einen ungültigen Typ an die HasColumnType Methode übergeben, in meinem Fall sollte "varchar" jedoch gültig sein.

Irgendwelche Ideen, was könnte falsch sein?

So werden diese Eigenschaften in meiner Entität definiert:

    public virtual string FileStoreVersion
    {
        get;
        set;
    }

    public virtual string FileStoreDetailsUrl
    {
        get;
        set;
    }

Hier ist ein Beispiel für einen Test, der in der ersten Zeile fehlschlägt:

    [TestMethod]
    public void Delete_ReturnsSuccess()
    {
        _context.DistributionListSelectionCriteriaDepartmentEntities.Add(_distributionListSelectionCriteriaDepartmentEntity);

_context in diesem Fall vom Typ MemoryEnterprisePaycorCodeFirstContext :

    private void InitializeTestObjects()
    {
        _context = new MemoryEnterprisePaycorCodeFirstContext();

Die von meiner public class EnterprisePaycorCodeFirstContext : DbContext erbt public class EnterprisePaycorCodeFirstContext : DbContext

In dieser Klasse initialisiere ich meine Entitätszuordnungen:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new FileStoreDocumentEntityMapping());

Könnte dies sein, weil ich Effort MemoryContext im Vergleich zu einem Real DB-Kontext verwende?

public class MemoryEnterprisePaycorCodeFirstContext : EnterprisePaycorCodeFirstContext
{
    public MemoryEnterprisePaycorCodeFirstContext()
        : base(DbConnectionFactory.CreateTransient())
    {
        Database.CreateIfNotExists();
    }

Akzeptierte Antwort

Ich habe herausgefunden, was es war. Es stellte sich heraus, dass ich die Effort Bibliothek verwendet habe, die einige von @Balah angegebene Spaltentypen nicht unterstützt. Ich habe diese Technik verwendet, um die Entitätszuordnungskonfiguration zu umgehen, wenn ich aus meinem Gedächtniskontext: Aufwand (EF-Einheitentest) komme , der Fehler anzeigt



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow