2012-06-06 1 views
4

나는 마지막 날 또는 2 일 동안 내 애플리케이션을 깰 준비가되었습니다."잘못된 개체 이름 'dbo.Memberships'." 새 사용자를 추가하려고 할 때

회원 공급자를 사용하여 회원 데이터베이스 내에 새로운 사용자를 만드는 방법이 있습니다.

public void Create(Consumer consumer) 
    { 

     MembershipCreateStatus status; 
     if (consumer.UserId == Guid.Empty) 
     { 
      consumer.UserId = Guid.NewGuid(); 
     } 
     if (consumer.ConsumerId == Guid.Empty) 
     { 
      consumer.ConsumerId = Guid.NewGuid(); 
     } 
     try 
     { 
      var membershipUser = Membership.CreateUser(consumer.UserName, consumer.Password, consumer.Email, null, null, consumer.IsApproved, consumer.UserId, out status); 
.... 
} 

내부 예외는

이다 { "잘못된 개체 이름 'dbo.Memberships'."}

스택 추적은 System.Data에서

입니다. EntityClient.EntityCommandDefinition.ExecuteStoreCommands (EntityCommand entityCommand, CommandBehavior 비헤이비어) at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute [TResultType]에서 시스템 (ObjectContext의 컨텍스트 ObjectParameterCollection parameterValues) System.Data.Objects.ObjectQuery에서 System.Data.Objects.ObjectQuery 1.GetResults(Nullable 1 forMergeOption) 에서 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable 1 소스) .Data.Objects.ELinq.ObjectQueryProvider.b__1 [TResult] (IEnumerable 1 sequence) at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable query, Expression queryRoot) at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute [S] (표현식) at System.Web.Providers.DefaultMembershipProvider에서 의 System.Web.Providers.QueryHelper.GetMembership (MembershipEntities ctx, String applicationName, Guid userId) .Membership_CreateUser (String applicationName, String userName, String password, String salt, String email, String passwordQuestion, String passwordAnswer, 부울 isApproved, 날짜 시간 & createDate, 부울 uniqueEmail, Int32 passwordFormat, Object & providerUserKey) at System.Web.Providers.DefaultMembershipProvider .CreateUser (문자열 사용자 이름, 문자열 암호, 문자열 전자 메일, 문자열 passwordQuestion, 문자열 passwordAnswer, 부울 isApproved, 개체 providerUserKey, MembershipCreateStatus & 상태) at System.Web.Security.Membership.CreateUser (문자열 사용자 이름, 문자열 암호, 문자열 전자 메일, 문자열 passwordQuestion, String passwordAnswer, Boolean isApproved, 객체 providerUserKey, MembershipCreateStatus & 상태) at Plenfy.Api.Models.ConsumerRepository.Create (고객 c onsumer)에서 c : \ Code \ Customers \ Api \ Repository \ ConsumerRepository.cs : line 121

이 문제를 해결하는 방법에 대한 단서가 없습니다. 데이터베이스와 연결 문자열이 잘 보이고 EF를 사용하여 연결할 수 있습니다.

누구나이 바닥에 도달하는 방법을 제안 할 수 있습니까?

+0

"EF로 연결할 수있다"는 것을 말하면 무엇을 의미합니까? web.config에 표시되는 연결 문자열을 복사하여 새 연결을 만들 수 있습니다. 또는 Membership.GetUser를 사용하여 사용자 목록을 다시 얻을 수 있습니까? 구성의 기본 멤버 자격 공급자는 무엇입니까? 아마도이 게시물에 사용자 이름/비밀 번호 등 (없이) 귀하의 설정을 가하고 좋은 시작이 될 것입니다. –

+0

은 올바른 연결 문자열을 가리키는 멤버 자격 공급자입니까? EF와 멤버십 공급자가 서로 다른 경우 서로 다른 연결 문자열을 사용하고 다른 db를 가리킬 수 있습니다. –

+0

db의 테이블 이름이 dbo.webpages_Membership입니다. 엔티티 프레임 워크가 dbo.membership을 찾으려면 무슨 일이 일어나는지 확인하십시오. – mesut

답변

-1
try to use 
MembershipCreateStatus status; 
     if (consumer.UserId == Guid.Empty) 
     { 
      consumer.UserId = Guid.NewGuid(); 
     } 
     if (consumer.ConsumerId == Guid.Empty) 
     { 
      consumer.ConsumerId = Guid.NewGuid(); 
     } 
     try 
     { 
      var membershipUser = System.Web.Security.Membership.CreateUser(consumer.UserName, consumer.Password, consumer.Email, null, null, consumer.IsApproved, consumer.UserId, out status); 
     } 
관련 문제