调用DBSet.Add()时“序列包含无匹配元素”

时间:2013-05-08 03:01:27

标签: c# entity-framework

我在尝试执行以下代码时抛出InvalidOperationException“Sequence包含无匹配元素”。这是在初始设置数据库时:

Global.migrationContext.SourceObjects.Add(sourceObject);

源对象如下所示:

DataMigrationMapping.SourceObject
  MigrationPasses   null                System.Collections.ObjectModel.ObservableCollection<DataMigrationMapping.MigrationPass>
  Name              "COMP_CASE"         string
  Notes             "Complaint Case"    string
  Schema            "Wacka"             string
  SourceElements    null                System.Collections.Generic.List<DataMigrationMapping.SourceElement>
  SourceObjectID    0                   int

我的dbContext看起来像这样:

public class MigrationContext : DbContext
{
    public DbSet<SourceObject> SourceObjects {get; set;} 
    public DbSet<SourceElement> SourceElements {get; set;}
    public DbSet<MigrationPass> MigrationPasses {get; set;}
    public DbSet<Entity> Entities {get; set;}

    public MigrationContext(string connectionString)
        : base(connectionString)
    {
    }

    public void Load()
    {
        SourceObjects.Load();
        SourceElements.Load();
        MigrationPasses.Load();
        Entities.Load();
    }
}

在我将此属性添加到MigrationPass类后,错误开始出现:

public Entity TargetEntity { get; set; }

这导致我相信我的模型从Entity类流出来有问题。可能与这个类是抽象的有关。实体类看起来像这样:

public abstract class Entity
{
    public int EntityID { get; set; }
    public string Name { get; set; }
    public EntityType EntityType { get; set; }
    public string RefCode { get; set; }
    public Cardinality Cardinality { get; set; }

    protected ObservableCollection<Field> fields;
    [NotMapped]
    public ObservableCollection<Field> Fields
    {
        get { return fields; }
    }
    public void AddField(Field field)
    {
        fields.Add(field);
    }

    protected ObservableCollection<Entity> roles;
    [NotMapped]
    public ObservableCollection<Entity> Roles
    {
        get { return roles; }
    }
    public void AddRole(Entity role)
    {
        roles.Add(role);
    }

关于可能导致错误的任何想法?

0 个答案:

没有答案
相关问题