32

コマンド: add-migration blahblah -verbose
エラー:シーケンスに要素が含まれていません

このエラーが発生する前に、いくつかのことを行いました。コード ファースト モデルに変更を加えましたが、add-migrationまだ実行されていません。次に、アイデアを視覚的に試すために EDMX モデルを追加しました。EDMX モデルが私のコードをいじっていることに気付いたので、それを削除しました。実行しようとするadd-migrationと、「シーケンスに要素が含まれていません」というメッセージが表示されました。EF 5 にアップグレードし、構成を除いて古い移行パッケージをアンインストールしました。add-migrationその後、もう一度試しましたが、「シーケンスには要素が含まれていません」というメッセージが表示されます。以下、エラーの残りです。

System.InvalidOperationException: Sequence contains no elements
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.GetQualifiedTableName(XDocument model, String entitySetName)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<FindRenamedIndependentAssociationColumns>b__ba(<>f__AnonymousType16`2 <>h__TransparentIdentifieraa)
   at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext()
   at System.Linq.Enumerable.<DistinctIterator>d__81`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, String connectionString)
   at System.Data.Entity.Migrations.DbMigrator.Scaffold(String migrationName, String namespace, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(String migrationName, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(MigrationScaffolder scaffolder)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore()
   at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Sequence contains no elements
4

9 に答える 9

63

で列のタイプとサイズを定義しようとすると、この問題が発生しますDataAnnotations

悪い:

[Column(TypeName="VARCHAR(254)")]
public string ColumnName { get; set; }

わかった:

[MaxLength(254)]
[Column(TypeName="VARCHAR")]
public string ColumnName { get; set; }
于 2014-03-14T16:33:34.823 に答える
6

私にとって問題の原因は、エンティティに関連付けられた関係を変更するとともに名前を変更することでした。

したがって、私の場合の解決策は次のとおりです。

  • 旧姓に戻す
  • 移行の追加(その後、実行できました)
  • データベースの更新
  • エンティティの名前を変更し、新しい移行を生成する

ただし、この問題には他にも多くの原因が考えられます。たとえば、適用後に移行を削除するなどです。残念ながら、このエラーは意味のあるものではありません。

于 2016-10-21T13:58:44.063 に答える
2

バグのようです。問題を再現できる詳細をhttp://entityframework.codeplex.com/workitem/list/advancedに提出してもよろしいですか?

于 2012-09-20T05:14:58.610 に答える
2

public アクセス修飾子が欠落しているクラスで移行を実行しようとしていたため、これも発生しました。

これを追加すると、エラーは解決されました。

于 2019-04-04T16:15:53.460 に答える