2012-03-02 53 views
2

我试图将我的解决方案从EF Code First的2011年6月CTP升级到EF 5 Beta。EF 5 Beta 1代码优先 - 序列包含多个元素

现在我有以下问题:

创建上下文的一个实例后,我得到下面当我尝试和查询上下文中列出的除外。

似乎在EF的两个版本之间,有些事情已经发生了变化,现在它在处理配置时遇到了问题,但我无法从哪里开始寻找。

非常感谢您的任何帮助。

Paul。

System.InvalidOperationException了由用户代码未处理
的HResult = -2146233079消息=序列包含一个以上的元件 源= System.Core程序堆栈跟踪: 在System.Linq.Enumerable.SingleOrDefault [TSource](IEnumerable的 TS,动作1 action) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.ConfigureAssociationMappings(DbDatabaseMapping databaseMapping) at System.Data.Entity.ModelConfiguration.Configuration.Types.EntityTypeConfiguration.Configure(EdmEntityType entityType, DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.ConfigureEntityTypes(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.ModelConfiguration.Configuration.ModelConfiguration.Configure(DbDatabaseMapping databaseMapping, DbProviderManifest providerManifest) at System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) at System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) at System.Data.Entity.Internal.RetryLazy 2.GetValue(TInput输入) 在System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 在System.Data.Entity.Internal.InternalContext.Initialize() 在System.Data。 Entity.Internal.InternalContext.ForceOSpaceLoadingForKnownEntityTypes() at System.Data.Entity.DbContext.System.Data.Entity.Infrastructure.IObjectContextAdapter.get_ObjectContext() at AccessAccounts.Accounts.DataAccess.Context.AccountsContext..ctor(String connectionString)in c:\ Source \ EnterpriseVS11 \ Enterprise \ Data Access EF \ Context \ AccountsContext.cs:line 77 at AccessAccounts.BusinessService.Logon.LogonService.CheckDatabaseCompatibility() in c:\ Source \ EnterpriseVS11 \ Enterprise \ Business Service \ src \ AccessAccounts \ BusinessService \ Logon \ LogonService.cs:行 at AccessAccounts.BusinessService.Logon.LogonService.Logon(ApplicationTypes applicationType,String databaseName,String userName,String password,AuthenticationType authenticationMode)在 C:\源\ EnterpriseVS11 \企业\商业 服务\ SRC \ AccessAccounts \的BusinessService \登录\ LogonService.cs:线在SyncInvokeLogon(对象,对象[],对象[]) 在系统。 ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 例如,对象[]输入,对象[] &输出) 在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc & RPC)的InnerException:

+0

你可以提供查询周围的代码吗?它看起来像SingleOrDefault()的问题。 – WDRust 2012-03-02 23:07:56

+1

似乎这是一个已知的错误https://twitter.com/#!/divega/status/175984297931583489 - 可悲的是,我遇到了同样的事情。 – rafek 2012-03-03 17:24:30

+0

@rafek - 谢谢,我希望他们尽快修复或者可以提供解决方法。如果我得到时间,我可以试着追查它在配置中的情况,它不喜欢,假设这是它的原因。我非常热衷于尝试EF 5来观察这些性能改进! – P2l 2012-03-03 18:38:18

回答

2

这是这是EF5 Beta 1中的一个已知错误。我们将在Beta 2中修复此问题,这将是d在接下来的几个星期内将会出现。

该错误仅影响独立关联(在您的CLR类中不存在FK的关联),因此您可以通过切换到FK关联来解决此问题。

+0

谢谢,期待修复。 – P2l 2012-03-05 21:22:10

+0

我可以确认EF5 Beta 2已经修复了这个问题。 – P2l 2012-03-25 19:14:27