【问题标题】:Can SimpleMembership and Entity Framework share a connection string?SimpleMembership 和实体框架可以共享连接字符串吗?
【发布时间】:2013-06-08 15:10:45
【问题描述】:

目前在使用 Entity Framework 和 SimpleMembership 时,我需要在 web.config 中有 2 个连接字符串。

第一个在调用WebSecurity.InitializeDatabaseConnection 时使用,它是一个简单的连接字符串。另一个用于 edmx,包含文件引用和连接字符串信息。这意味着连接字符串信息在文件中存在两次。

除了重复信息外,我认为使用 azure 可能是一个问题(未经证实)。

有没有办法把它减少到一个连接字符串,只保留一个用于 edmx。简单地将 EF 传递给 WebSecurity 初始化方法是行不通的。

【问题讨论】:

    标签: entity-framework web-config connection-string


    【解决方案1】:

    是的,您可以对两者使用相同的连接字符串。不同之处在于 edmx 的连接字符串包含模型的额外元数据。

    最好的办法是只使用 edmx 连接字符串,然后用 EntityConnectionStringBuilder 解析它。

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

    然后使用该连接字符串初始化 SimpleMembershipProvider

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

    【讨论】:

    • 当我想在使用实体框架方法的事务中使用 WebSecurity 方法(例如 CreateUserAndAccount)时,问题就来了。然后我收到错误消息:“分布式事务管理器 (MSDTC) 的网络访问已被禁用”
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多