0

既存の DB-Entity Framework 4.1 で Code First を使用しています。私のプロジェクトでは、.edmx ファイルと生成されたスキーマを追加し、ストアド プロシージャを表示します。

私の問題はここにあります

1- I moved my .edmx file,.tt to other project
2- Removed from working project
3- Copy all schema,view,DBContext everything related to .edmx generated to folder called Entities.
4- Removed matadata information from connection string which is in web.config

その後、プロジェクトエラーを実行できませんエラーが発生します

System.Data.DataException was unhandled by user code
  Message=An exception occurred while initializing the database. See the InnerException for details.
  Source=EntityFramework
  StackTrace:
       at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
       at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()
       at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c)
       at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input)
       at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action)
       at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
       at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
       at QTrac.DAL.RepositoryBase`1.Get(Expression`1 filter, Func`2 orderBy, Nullable`1 take, String includeProperties, Boolean tracking) in D:\QTrack\Project-NewQTrac\QTrac\QTrac.DAL\RepositoryBase.cs:line 39
       at QTrac.DAL.EquipStateRepository.GetEquipStates(Nullable`1 active) in D:\QTrack\Project-NewQTrac\QTrac\QTrac.DAL\EquipStateRepository.cs:line 25
       at QTrac.BLL.AssetManagementService.GetEquipStates(Nullable`1 active) in D:\QTrack\Project-NewQTrac\QTrac\BL\AssetManagementService.cs:line 68
       at QTrac.Web.Controllers.AssetManagementController.Grid_PopulateEquipmentStateCombo() in D:\QTrack\Project-NewQTrac\QTrac\QTrac.Web\Controllers\AssetManagementController.cs:line 135
       at QTrac.Web.Controllers.AssetManagementController.Detail() in D:\QTrack\Project-NewQTrac\QTrac\QTrac.Web\Controllers\AssetManagementController.cs:line 38
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
       at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
       at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
  InnerException: System.Data.EntityException
       Message=The underlying provider failed on Open.
       Source=System.Data.Entity
       StackTrace:
            at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
            at System.Data.EntityClient.EntityConnection.Open()
            at System.Data.Objects.ObjectContext.EnsureConnection()
            at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
            at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
            at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
            at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable`1 sequence)
            at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
            at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
            at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression)
            at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)
            at System.Data.Entity.Internal.InternalContext.QueryForModelHash()
            at System.Data.Entity.Internal.InternalContext.CompatibleWithModel(Boolean throwIfNoMetadata)
            at System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context)
            at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass5.<PerformDatabaseInitialization>b__3()
            at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
       InnerException: System.Transactions.TransactionManagerCommunicationException
            Message=Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool.
            Source=System.Transactions
            StackTrace:
                 at System.Transactions.Oletx.OletxTransactionManager.ProxyException(COMException comException)
                 at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
                 at System.Transactions.TransactionStatePSPEOperation.PSPEPromote(InternalTransaction tx)
                 at System.Transactions.TransactionStateDelegatedBase.EnterState(InternalTransaction tx)
                 at System.Transactions.EnlistableStates.Promote(InternalTransaction tx)
                 at System.Transactions.Transaction.Promote()
                 at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction)
                 at System.Transactions.TransactionInterop.GetExportCookie(Transaction transaction, Byte[] whereabouts)
                 at System.Data.SqlClient.SqlInternalConnection.GetTransactionCookie(Transaction transaction, Byte[] whereAbouts)
                 at System.Data.SqlClient.SqlInternalConnection.EnlistNonNull(Transaction tx)
                 at System.Data.SqlClient.SqlInternalConnection.Enlist(Transaction tx)
                 at System.Data.SqlClient.SqlInternalConnectionTds.Activate(Transaction transaction)
                 at System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(Transaction transaction)
                 at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
                 at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
                 at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
                 at System.Data.SqlClient.SqlConnection.Open()
                 at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
            InnerException: System.Runtime.InteropServices.COMException
                 Message=The transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D024)
                 Source=System.Transactions
                 ErrorCode=-2147168220
                 StackTrace:
                      at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)
                      at System.Transactions.TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(Byte[] propagationToken)
                 InnerException: 

この問題とは何か、解決策を教えてください。

ありがとう

4

1 に答える 1

0

.edmx ファイルは実際には単なる xml ファイルであるため、ファイルをメモ帳で開き、参照が古いプロジェクトではなく新しいプロジェクトを指していることを確認することをお勧めします。

于 2012-04-13T21:58:49.237 に答える