Ef code first 序列包含多个元素代码首先添加迁移

Ef code first 序列包含多个元素代码首先添加迁移,ef-code-first,code-first,Ef Code First,Code First,下面是实体,当我要添加迁移时,它给了我一个例外 public class MyEntity [Key] public int ID { get; set; } public string Name { get; set; } [NotMapped] public HttpPostedFileBase DiagramFMCDocumentUpload { get; set; } //[ForeignKey("DiagramFMCDocumentID")] //public Do

下面是实体,当我要添加迁移时,它给了我一个例外

public class MyEntity
    [Key]
    public int ID { get; set; }
public string Name { get; set; }


[NotMapped]
public HttpPostedFileBase DiagramFMCDocumentUpload { get; set; }
//[ForeignKey("DiagramFMCDocumentID")]
//public Document DiagramFMCDocument { get; set; }
//public int? DiagramFMCDocumentID { get; set; }

//[NotMapped]
//public HttpPostedFileBase ExecutedDeedDocumentUpload { get; set; }

public Document ExecutedDeedDocument { get; set; }

[ForeignKey("ExecutedDeedDocument")]
[InverseProperty("ExecutedDeedDocument")]
public int? ExecutedDeedDocumentID { get; set; }

[NotMapped]
public HttpPostedFileBase DCertificationDocumentUpload { get; set; }

public Document DCertificationDocument { get; set; }

[ForeignKey("DCertificationDocument")]
[InverseProperty("DCertificationDocument")]
public int? DCertificationDocumentID { get; set; }

////ForeignFundBasicType
//public int ForeignFundStructureTypeFDID { get; set; }
}

当我评论一些文档和外键字段时,它很完美,但不止一个外键工作不好。这是个例外

System.InvalidOperationException: Sequence contains more than one element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<>c__DisplayClass293.<>c__DisplayClass295.<FindRenamedIndexes>b__28b(String c)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1 first, IEnumerable`1 second, IEqualityComparer`1 comparer)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<>c__DisplayClass293.<FindRenamedIndexes>b__28a(<>f__AnonymousType30`2 <>h__TransparentIdentifier286)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.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(ModelMetadata source, ModelMetadata target, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   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.Run()
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName, String language, String rootNamespace, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Sequence contains more than one element
PM> Add-Migration First -Force
System.InvalidOperationException: Sequence contains more than one element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<>c__DisplayClass293.<>c__DisplayClass295.<FindRenamedIndexes>b__28b(String c)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1 first, IEnumerable`1 second, IEqualityComparer`1 comparer)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<>c__DisplayClass293.<FindRenamedIndexes>b__28a(<>f__AnonymousType30`2 <>h__TransparentIdentifier286)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.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(ModelMetadata source, ModelMetadata target, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   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.Run()
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
   at System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName, String language, String rootNamespace, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
   at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
System.InvalidOperationException:序列包含多个元素
在System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)处
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.c__DisplayClass293.c__DisplayClass295.b__28b(字符串c)
位于System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
在System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1第一,IEnumerable`1第二,IEqualityComparer`1比较器)
在System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.c__DisplayClass293.b__28a(f__匿名类型30`2 h__透明标识符286)
在System.Linq.Enumerable.WhereSelectEnumerableInterator`2.MoveNext()中
位于System.Collections.Generic.List`1..ctor(IEnumerable`1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.Diff(ModelMetadata源、ModelMetadata目标、Lazy`1 modificationCommandTreeGenerator、MigrationSqlGenerator MigrationSqlGenerator、String sourceModelVersion、String targetModelVersion)
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifferent.Diff(XDocument sourceModel,XDocument targetModel,Lazy`1 modificationCommandTreeGenerator,MigrationSqlGenerator MigrationSqlGenerator,String sourceModelVersion,String targetModelVersion)
位于System.Data.Entity.Migrations.DbMigrator.Scaffold(字符串migrationName、字符串命名空间、布尔值ignoreChanges)
位于System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(字符串migrationName,布尔值ignoreChanges)
位于System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(迁移文件夹脚手架工)
位于System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run()处
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)处
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)处
位于System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner)
位于System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName、String语言、String rootNamespace、Boolean ignoreChanges)
位于System.Data.Entity.Migrations.AddMigrationCommand.Execute(字符串名称、布尔值强制、布尔值忽略更改)
在System.Data.Entity.Migrations.AddMigrationCommand.c__DisplayClass2.b__0()中
位于System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)
序列包含多个元素
PM>先添加迁移-强制
System.InvalidOperationException:序列包含多个元素
在System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)处
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.c__DisplayClass293.c__DisplayClass295.b__28b(字符串c)
位于System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
在System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1第一,IEnumerable`1第二,IEqualityComparer`1比较器)
在System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.c__DisplayClass293.b__28a(f__匿名类型30`2 h__透明标识符286)
在System.Linq.Enumerable.WhereSelectEnumerableInterator`2.MoveNext()中
位于System.Collections.Generic.List`1..ctor(IEnumerable`1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.Diff(ModelMetadata源、ModelMetadata目标、Lazy`1 modificationCommandTreeGenerator、MigrationSqlGenerator MigrationSqlGenerator、String sourceModelVersion、String targetModelVersion)
位于System.Data.Entity.Migrations.Infrastructure.EdmModelDifferent.Diff(XDocument sourceModel,XDocument targetModel,Lazy`1 modificationCommandTreeGenerator,MigrationSqlGenerator MigrationSqlGenerator,String sourceModelVersion,String targetModelVersion)
位于System.Data.Entity.Migrations.DbMigrator.Scaffold(字符串migrationName、字符串命名空间、布尔值ignoreChanges)
位于System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(字符串migrationName,布尔值ignoreChanges)
位于System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(迁移文件夹脚手架工)
位于System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run()处
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)处
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)处
位于System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner)
位于System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName、String语言、String rootNamespace、Boolean ignoreChanges)
位于System.Data.Entity.Migrations.AddMigrationCommand.Execute(字符串名称、布尔值强制、布尔值忽略更改)
在System.Data.Entity.Migrations.AddMigrationCommand.c__DisplayClass2.b__0()中
位于System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)

您使用的EF版本是什么?我猜您使用的版本早于6.1.3


根据这一点,我认为更新“实体框架”将解决您的问题

检查前两行:在System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)在System.Data.Entity.Migrations.Infrastructure.EdmModelDifference.c_uDisplayClass293.c_uDisplayClass295.b_u28B(字符串c),尤其是“FindNamedIndex”返回多个元素。实体的先前状态是什么?