次のコードを実行しようとすると、InvalidOperationException "Sequence Contains No Matching Element" がスローされます。これは、データベースの初期設定にあります。
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);
}
エラーの原因について何か考えはありますか?