How to use Membership provider with EF Code First?

后端 未结 6 1846
独厮守ぢ
独厮守ぢ 2020-12-30 01:33

I have models based on EF Code First and I want to use them with the default MembershipProvider, but I don\'t know how to write the model correctly, so it won\'t erase all m

6条回答
  •  梦谈多话
    2020-12-30 02:19

    In my DbContext.cs file I have a Seed function where I call the ApplicationServices.InstallServices() to install the ASP.NET Membership to my database. Now everytime my initializer drop the database it recreates ASP.NET Membership schema again.

    public class PanelInitializer : DropCreateDatabaseAlways
    {
        protected override void Seed(PanelContext context)
        {
            //Install ASP.NET Membership
            ApplicationServices.InstallServices(SqlFeatures.Membership | SqlFeatures.RoleManager); 
    
            new List
                {
    

    The ApplicationServices class

    using System.Configuration;
    using System.Data.SqlClient;
    using System.Web.Management;
    
    namespace Lansw.Panels.DataAccess.Contexts
    {
        public class ApplicationServices
        {
            readonly static string DefaultConnectionString = ConfigurationManager.AppSettings["DefaultConnectionString"];
            readonly static string ConnectionString = ConfigurationManager.ConnectionStrings[DefaultConnectionString].ConnectionString;
            readonly static SqlConnectionStringBuilder MyBuilder = new SqlConnectionStringBuilder(ConnectionString);
    
            public static void InstallServices(SqlFeatures sqlFeatures)
            {
                SqlServices.Install(MyBuilder.InitialCatalog, sqlFeatures, ConnectionString);
            }
    
            public static void UninstallServices(SqlFeatures sqlFeatures)
            {
                SqlServices.Uninstall(MyBuilder.InitialCatalog, sqlFeatures, ConnectionString);
            }
        }
    }
    

    Thanks to @ImarSpaanjaars http://imar.spaanjaars.com/563/using-entity-framework-code-first-and-aspnet-membership-together.

提交回复
热议问题