【问题标题】:Sitefinity Framework - error on update-database : Sequence contains more than one elementSitefinity Framework - 更新数据库错误:序列包含多个元素
【发布时间】:2015-12-10 20:46:14
【问题描述】:

我刚刚在我的 Project > DataLayer > Property.cs 中添加了这些行

public Property()
{
    this.Amenties = new List<Amenity>();
}

public string Latitude { get; set; }
public string Longitude { get; set; }
public virtual ICollection<Amenity> Amenties  { get; set; }

在我的项目中 > DataLayer > Amenties.cs

public virtual ICollection<Property> Properties { get; set; }

在运行更新数据库时获得以下输出

    PM> update-database
    Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
    Applying explicit migrations: [201509141729336_PropLatLongAmt].
    Applying explicit migration: 201509141729336_PropLatLongAmt.
    Running Seed method.
    System.InvalidOperationException: Sequence contains more than one element
       at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
       at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__2[TResult](IEnumerable`1 sequence)
       at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
       at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
       at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression)
       at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source, Expression`1 predicate)
       at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](DbSet`1 set, IEnumerable`1 identifyingProperties, InternalSet`1 internalSet, TEntity[] entities)
       at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](IDbSet`1 set, Expression`1 identifierExpression, TEntity[] entities)
       at SitefinityWebApp.Migrations.Configuration.Seed(TopSpotDbContext context) in e:\My Work\salman\Topspot\SitefinityWebApp\Web\Migrations\Configuration.cs:line 40
       at System.Data.Entity.Migrations.DbMigrationsConfiguration`1.OnSeed(DbContext context)
       at System.Data.Entity.Migrations.DbMigrator.SeedDatabase()
       at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.SeedDatabase()
       at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
       at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
       at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
       at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClassc.<Update>b__b()
       at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
       at System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
       at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
       at System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update(String targetMigration)
       at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.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.Update(String targetMigration, Boolean force)
       at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0()
       at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
    Sequence contains more than one element

没有重复的字段已检查,只有一个纬度和一个经度以及我在整个 (POCO) 属性类中添加的 Amenties。 我在运行一次更新数据库之前运行 add-migration

【问题讨论】:

    标签: ef-code-first code-first sitefinity


    【解决方案1】:

    调试更新数据库发现问题

    Debug code-first Entity Framework migration codes

    我确实尝试恢复我所做的更改,但仍然出现相同的错误,所以我按照上面链接中的说明进行操作,发现错误出现在 堆栈输出中指示的第 40 行

       at SitefinityWebApp.Migrations.Configuration.Seed(TopSpotDbContext context) in PROJECT_DIRECTORY\SitefinityWebApp\Web\Migrations\Configuration.cs:line 40
    

    【讨论】:

      【解决方案2】:

      尝试将 Property 类和 Properties 属性重命名为其他名称。可能是这些保留字导致了这个问题。

      【讨论】:

      • 属性类以前在那里,代码工作正常。还有类属性“Properties”,我尝试将其重命名为“property”,但没有出现错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2017-11-21
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多