2011-09-07 36 views
12

Tôi đang làm việc trên một ứng dụng web ASP.Net MVC 3 sử dụng EF 4.1. Kể từ ngày hôm nay, tôi nhận được lỗi này:System.ArgumentException: Tên kiểu trùng lặp trong một assembly

System.ArgumentException: type name trùng lặp trong một lắp ráp

và tôi không thể tìm ra những gì đang gây ra nó. Nó đang xảy ra trong kho của tôi khi thực hiện một Find:

public virtual T GetById(long id) 
{ 
    return dbset.Find(id); 
} 

Đây là stack trace:

[ArgumentException: Duplicate type name within an assembly.] 
    System.Reflection.Emit.ModuleBuilder.CheckTypeNameConflict(String strTypeName, TypeBuilder enclosingType) +9544354 
    System.Reflection.Emit.AssemblyBuilderData.CheckTypeNameConflict(String strTypeName, TypeBuilder enclosingType) +53 
    System.Reflection.Emit.TypeBuilder.Init(String fullname, TypeAttributes attr, Type parent, Type[] interfaces, Module module, PackingSize iPackingSize, Int32 iTypeSize, TypeBuilder enclosingType) +178 
    System.Reflection.Emit.ModuleBuilder.DefineType(String name, TypeAttributes attr, Type parent, Type[] interfaces) +118 
    System.Data.Objects.Internal.ProxyTypeBuilder.get_TypeBuilder() +299 
    System.Data.Objects.Internal.ProxyTypeBuilder.CreateType(ModuleBuilder moduleBuilder) +227 
    System.Data.Objects.Internal.EntityProxyFactory.BuildType(ModuleBuilder moduleBuilder, ClrEntityType ospaceEntityType) +63 
    System.Data.Objects.Internal.EntityProxyFactory.TryCreateProxyType(EntityType ospaceEntityType) +193 
    System.Data.Objects.Internal.EntityProxyFactory.GetProxyType(ClrEntityType ospaceEntityType) +104 
    System.Data.Common.Internal.Materialization.Translator.Visit(EntityColumnMap columnMap, TranslatorArg arg) +178 
    System.Data.Query.InternalTrees.EntityColumnMap.Accept(ColumnMapVisitorWithResults`2 visitor, TArgType arg) +16 
    System.Data.Common.Internal.Materialization.Translator.ProcessCollectionColumnMap(CollectionColumnMap columnMap, TranslatorArg arg, ColumnMap discriminatorColumnMap, Object discriminatorValue) +116 
    System.Data.Common.Internal.Materialization.Translator.Visit(SimpleCollectionColumnMap columnMap, TranslatorArg arg) +13 
    System.Data.Query.InternalTrees.SimpleCollectionColumnMap.Accept(ColumnMapVisitorWithResults`2 visitor, TArgType arg) +17 
    System.Data.Common.Internal.Materialization.Translator.TranslateColumnMap(QueryCacheManager queryCacheManager, ColumnMap columnMap, MetadataWorkspace workspace, SpanIndex spanIndex, MergeOption mergeOption, Boolean valueLayer) +314 
    System.Data.Common.Internal.Materialization.TypedShaperFactoryCreator`1.TypedCreate(QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, Boolean valueLayer) +64 
    System.Data.Common.Internal.Materialization.ShaperFactory.Create(Type elementType, QueryCacheManager cacheManager, ColumnMap columnMap, MetadataWorkspace metadata, SpanIndex spanInfo, MergeOption mergeOption, Boolean valueLayer) +185 
    System.Data.Objects.Internal.ObjectQueryExecutionPlan.Prepare(ObjectContext context, DbQueryCommandTree tree, Type elementType, MergeOption mergeOption, Span span, ReadOnlyCollection`1 compiledQueryParameters) +285 
    System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable`1 forMergeOption) +696 
    System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +149 
    System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +44 
    System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +184 
    System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__2(IEnumerable`1 sequence) +41 
    System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +59 
    System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +150 
    System.Linq.Queryable.SingleOrDefault(IQueryable`1 source) +265 
    System.Data.Entity.Internal.Linq.InternalSet`1.FindInStore(WrappedEntityKey key, String keyValuesParamName) +602 
    System.Data.Entity.Internal.Linq.InternalSet`1.Find(Object[] keyValues) +124 
    System.Data.Entity.DbSet`1.Find(Object[] keyValues) +12 
    XXXXXXXX.Data.Infrastructure.RepositoryBase`1.GetById(Int64 id) in C:\XXXXXXXX\XXXXXXXX\XXXXXXXX.Data\Infrastructure\RepositoryBase.cs:58 
    MatchesHorsConcours.Service.MatchService.GetMatch(Int32 id) in C:\XXXXXXXX\XXXXXXXX\XXXXXXXX.Service\XxxService.cs:55 
    XXXXXXXX.Controllers.XXXXXXXX.Edit(Int32 id) in C:\XXXXXXXX\XXXXXXXX\XXXXXXXX.Web\Controllers\XxxController.cs:130 
    lambda_method(Closure , ControllerBase , Object[]) +101 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +208 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 
    System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263 
    System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 
    System.Web.Mvc.Controller.ExecuteCore() +116 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 
    System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8920029 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 

này có thể liên quan đến bảng trong đó tôi lặp lại một chìa khóa nước ngoài. Nó được gọi là myKeyId, và bây giờ tôi có myKey1Id và myKey2Id trong bảng đó. Tôi đã kiểm tra ở khắp mọi nơi trong mã của tôi, và tôi không thể tìm thấy myKeyId nữa.

Thông báo lỗi quá chung chung đến mức tôi không biết cách xác định chính xác nguyên nhân gây ra lỗi này. Lời khuyên nào cũng được chào đón.

+0

Ồ, vâng ... và tôi đang sử dụng mô hình cơ sở dữ liệu đầu tiên. –

Trả lời

2

Tôi cũng gặp phải lỗi này ngay hôm nay. Hóa ra, mô hình dữ liệu của tôi thiếu các ràng buộc khóa ngoài và khóa chính trong cơ sở dữ liệu. Tôi đã sao chép cơ sở dữ liệu gốc sang cơ sở dữ liệu cục bộ để tăng tốc độ thực hiện, nhưng tôi chỉ sao chép dữ liệu chứ không phải là các mối quan hệ. lỗi khác tôi đã có trong bối cảnh này là

an item with the same key has already been added 

Unable to update the EntitySet Table because it has a DefiningQuery and no InsertFunction element exists in the ModificationFunctionMapping element to support the current operation 

nó tất cả là do một cấu trúc cơ sở dữ liệu faultive

1

Ran vào vấn đề này ngày hôm nay. Tôi đã xóa tất cả các bảng của mình khỏi tệp Mô hình Entity .edmx, đã cập nhật mô hình của tôi từ Cơ sở dữ liệu (right-click --> update from database).

Sau đó, tôi đã biên dịch lại và hoạt động tốt. Một lỗi kỳ lạ như vậy.

Tôi đang chạy MVC 4 và EF 5.0

24

Tôi gặp lỗi tương tự.

Tôi đã xây dựng lại giải pháp sạch và đã hoạt động.

+2

Điều này cố định vấn đề của tôi cũng như –

+0

Cố định tôi vấn đề của tôi cũng như – Damith

+0

tôi hy vọng điều này sẽ giải quyết được vấn đề của tôi ... – Pinch

3

Giải pháp của tôi là tắt IIS và sau đó bắt đầu lại dự án VS.

IIS shutdown

+0

Có, nó giúp. Cảm ơn – pstarkov

Các vấn đề liên quan