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 1.GetResults(Nullable 1 forMergeOption) на System.Data.Objects.ObjectQuery 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 1 запрос, выражение queryRoot) на System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute [S] (выражение Выражение) в System.Linq.Queryable.FirstOrDefault [TSource] (источник IQueryable1) в System.Web.Providers.QueryHelper.GetMembership (MembershipEntities ctx, String applicationName, Guid userId) в System.Web.Providers.DefaultMembershipProvider .Membership_CreateUser (String ApplicationName, String имя_пользователя, String пароль, String соль, String электронной почты, String passwordQuestion, String passwordAnswer, Boolean isApproved, DateTime & createDate, Boolean uniqueEmail, Int32 passwordFormat, объект & ProviderUserKey) в System.Web.Providers.DefaultMembershipProvider .CreateUser (String username, String password, String email, String passwordQuestion, String passwordAnswer, Boolean isApproved, Object providerUserKey, MembershipCreateStatus & status) в System.Web.Security.Membership.CreateUser (имя пользователя String, пароль String, строка String, строка passwordQuestion, String passwordAnswer, Boolean isApproved, Object providerUserKey, MembershipCreateStatus & status) at Plenfy.Api.Models.ConsumerRepository.Create (Consumer c onsumer) в c: \ @ Code \ Customers \ Api \ Repository \ ConsumerRepository.cs: строка 121

У меня нет понятия, как исправить проблему. Строка базы данных и подключения выглядит нормально, и я могу подключиться к ней с помощью EF.

Может ли кто-нибудь предложить, как добраться до дна?

+0

Когда вы говорите «вы можете подключиться к нему с помощью EF», что вы имеете в виду? Вы имеете в виду, что вы можете скопировать строку подключения, которую вы видите в вашем web.config, и создать для нее новое соединение? Или вы можете получить список пользователей с помощью Membership.GetUser? Что такое поставщик членства по умолчанию в вашем конфиге? Возможно, создание вашего конфига в этом сообщении (без имени пользователя/пароля и т. Д.) Было бы хорошим началом. –

+0

- ваш поставщик членства, указывающий на правильную строку подключения ?. EF и членский провайдер могут использовать разные строки подключения и указывать на разные dbs. –

+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); 
     }