【发布时间】:2013-02-18 18:25:48
【问题描述】:
我正在尝试使用来自 SQL Server (2005) 的 DB first 迁移来设置一个简单的 ASP.NET MVC 4 webapp。我已经在数据库中创建了表,并使用 Entity Framework 在代码中创建了对象。我可以使用这些对象访问数据。
当我尝试在 Global.asax.cs 文件中使用 WebSecurity.InitializeDatabaseConnection("FLMREntities", "UserProfile", "UserId", "UserName", true); 初始化 WebSecurity 时,问题就出现了。我尝试使用模板附带的 InitializeSimpleMembershipAttribute 过滤器并遇到同样的问题。我收到错误消息:
Unable to find the requested .Net Framework Data Provider. It may not be installed.
这里是相关的连接字符串:
<add name="FLMREntities"
connectionString="metadata=res://*/Models.FLMR.csdl|res://*/Models.FLMR.ssdl|res://*/Models.FLMR.msl;
provider=System.Data.SqlClient;
provider connection string="data source=notes.marietta.edu;
initial catalog=muskwater;
user id=muskwater;password=********;
MultipleActiveResultSets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
另外,我在数据库中创建了成员表以匹配模板创建的内容。如果我将 Initialize 调用中的最后一个参数更改为 false(这样它就不会尝试自动创建表),它会返回它找不到 UserProfile 表。我还尝试了名称的变体,例如 [dbo].[UserProfile]。
我只需要一个简单的帐户模型来允许用户登录并允许某些用户查看更多内容。
【问题讨论】:
-
您的连接字符串前是否有
<clear/>?防止您从其他配置继承任何内容 -
我在这个项目中没有其他连接字符串。我从模板中注释掉了那个。我还需要
<clear/>吗?它会和上面的嵌套级别相同吗? -
机器/站点范围的配置都可以将连接字符串添加到您的应用程序。一些框架也是如此。
<clear/>应该是与连接字符串相同的部分中的第一个元素(加载配置部分时会保留顺序)。
标签: c# sql-server asp.net-mvc visual-studio entity-framework