2012-02-17 61 views
1

过去,我们只是使用默认的asp.net配置来自动添加表和相关代码。然后稍微更新一下以适应我们的需求,例如某些自定义配置文件提供程序。认证/授权的实体框架

现在我们正在使用MVC3和Entity Framework 4.此外,这次我们使用MySQL作为数据库,因为EF4与所有类型的数据库良好通信。然后我们有一些问题。

  1. asp.net配置将在web.config中创建一个单独的连接字符串条目并使用该条目。我们可以使用现有的EDMX模型吗?

  2. 由于我们不可能在MySQL数据库中编写存储过程,有没有任何示例代码设计这些成员资格/配置文件提供程序而不使用存储过程?

谢谢。


[更新 - 响应马修勒布朗]

我现在的项目是使用现有的MySQL数据库,其中已经包含了成员,角色和配置文件的信息。因此,我们不要使用Aspnet_regsql.exe在数据库中创建新表。我们如何使用现有的数据库结构来设计这些提供者?

到目前为止我还没有想到一个好的解决方案。任何建议将不胜感激。

回答

0

确实可以使用单个数据库来存放认证表和常规的EF4数据库。

您可以生成创建所有使用命令行工具aspnet_regsql.exe的的ASP.Net认证表(详见这里:http://msdn.microsoft.com/en-us/library/ms229862.aspx)脚本

您还可以修改你的web.config有一个单独的连接字符串指向你的单个数据库,但我建议你保留两行,每行都有他们的名字(和他们的目的),并且只是让他们指向同一个数据库。

这会看起来像

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" /> 
    <add name="MyEntities" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
... 

有关如何处理与MySQL与ASP.Net身份验证数据库你的问题中,关于存储过程,我不知道如何(如果)这工作。

+0

谢谢你的回复。但是,您提出的解决方案存在一些限制。 MySQL数据库的表中已经有用户和角色以及配置文件信息。我们如何构建使用这些现有表而不是创建新表的提供者? 我已经更新了这个问题。 – Blaise 2012-02-18 04:22:58

+0

也许我倒过来理解你的问题?您已拥有会员资格数据库。它工作吗? – 2012-02-21 19:09:52

+0

成员数据库是一个MySQL。我试图使用存储在其表中的用户数据。 – Blaise 2012-02-21 21:37:48