2012-06-06 36 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 behavior) 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 query,Expression queryRoot) at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute [S](Expression expression) at System.Linq.Queryable.FirstOrDefault [TSource](IQueryable`1 source) at System.Web.Providers.QueryHelper.GetMembership(MembershipEntities ctx,String applicationName,Guid userId) at System.Web.Providers.DefaultMembershipProvider .Membership_CreateUser(String applicationName,String userName,String password,String salt,String email,String passwordQuestion,String passwordAnswer,Boolean isApproved,DateTime & createDate,Boolean uniqueEmail,Int32 passwordFormat,Object & providerUserKey) at System.Web.Providers.DefaultMembershipProvider .CreateUser(String username,String password,String email,String passwordQuestion,String passwordAnswer,Boolean isApproved,Object providerUserKey,MembershipCreateStatus & status) at System.Web.Security.Membership.CreateUser(String username,String password,String email,String passwordCuestion,String passwordAnswer,Boolean isApproved,Object providerUserKey,MembershipCreateStatus & status) at Plenfy.Api.Models.ConsumerRepository.Create(Consumer c onsumer)在c:\ @代碼\ 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); 
     } 
相關問題