Can SimpleMembership and Entity Framework share a

2019-01-28 23:39发布

问题:

Currently when using Entity Framework and SimpleMembership I need to have 2 connection strings in web.config.

The first is used when calling WebSecurity.InitializeDatabaseConnection and its a simple connection string. The other is for the edmx and contains file references and the connection string info. It means the connection string info is in the file twice.

As well as duplicating information, I believe it can be an issue using azure (unconfirmed).

Is there a way to reduce this to one connection string and just keep the one for the edmx. Simply passing the EF one to the WebSecurity initialization method does not work.

回答1:

Yes you can use the same connection string for both. The difference is that the connection string for the edmx contains extra metadata for the model.

Best bet would be to just have the edmx connection string, then parse it with the EntityConnectionStringBuilder.

var builder = new EntityConnectionStringBuilder(entityConnectionString);
string sqlConnString = builder.ConnectionString;

Then initialise SimpleMembershipProvider with that connection string

WebSecurity.InitializeDatabaseConnection(sqlConnString, "User", "UserId", "UserName", autoCreateTables: true);