Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在MVC中使用InitializeDatabaseConnection()_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 无法在MVC中使用InitializeDatabaseConnection()

C# 无法在MVC中使用InitializeDatabaseConnection(),c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,每当我尝试运行WebSecurity.InitializeDatabaseConnection()时,它都会失败并出现错误 找不到请求的.Net Framework数据提供程序。可能不会 安装 下面是方法调用: WebSecurity.InitializeDatabaseConnection("DataContext", "Users", "Id", "UserName", autoCreateTables: true); 以下是我的数据库连接字符串(我在MVC应用程序中使用它,工作正常):

每当我尝试运行WebSecurity.InitializeDatabaseConnection()时,它都会失败并出现错误

找不到请求的.Net Framework数据提供程序。可能不会 安装

下面是方法调用:

WebSecurity.InitializeDatabaseConnection("DataContext", "Users", "Id", "UserName", autoCreateTables: true);
以下是我的数据库连接字符串(我在MVC应用程序中使用它,工作正常):

跟踪:

[ArgumentException:路径中存在非法字符。]
System.IO.Path.CheckInvalidPathChars(字符串路径,布尔值 选中附加)+10667574 System.IO.Path.Combine(字符串路径1, 字符串路径2)+42
WebMatrix.Data.ConfigurationManagerRapper.GetConnection(字符串名称, Func
2 getConfigConnection,Func
2文件存在)+208
WebMatrix.Data.ConfigurationManagerRapper.GetConnection(字符串名称) +91 WebMatrix.Data.Database.OpenNamedConnection(字符串名称,IConfigurationManager配置管理器)+18
WebMatrix.Data.Database.Open(字符串名)+61
WebMatrix.WebData.DatabaseConnectionInfo.Connect()+149
WebMatrix.WebData.SimpleMembershipProvider.ConnectToDatabase()+56
WebMatrix.WebData.SimpleMembershipProvider.CreateTablesIfNeeded()+67 WebMatrix.WebData.WebSecurity.InitializeMembershipProvider(SimpleMembershipProvider simpleMembership,数据库连接信息连接,字符串 userTableName、字符串userIdColumn、字符串userNameColumn、布尔值 创建表格)+169
WebMatrix.WebData.WebSecurity.InitializeProviders(数据库连接信息 连接,字符串userTableName,字符串userIdColumn,字符串 userNameColumn,布尔值自动创建表)+99
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(字符串 connectionStringName、String userTableName、String userIdColumn、, 字符串用户名列,布尔值自动创建表)+100
中的UPI.Web.mvcapapplication.Application_Start() c:\Users\danderson\Documents\UnitedPiping\LEMTracking\trunk\Source\Web\Global.asax.cs:73


在以前版本的SQL CE中,您必须同时安装32位和64位版本才能工作。。
在machine.config文件中检查SQL CE数据提供程序是否已正确注册

在以前版本的SQL CE中,您必须同时安装32位和64位版本才能工作。。
在machine.config文件中检查SQL CE数据提供程序是否已正确注册

不能将EntityFramework连接与WebSecurity.InitializeDatabaseConnection一起使用。如果希望具有相同的连接字符串,可以使用EntityConnectionSTring生成器

var builder = new EntityConnectionStringBuilder(entityConnectionString);
string sqlConnString = builder.ConnectionString;
然后使用该连接字符串初始化SimpleMembershipProvider

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

不能将EntityFramework连接与WebSecurity.InitializedTabaseConnection一起使用。如果希望具有相同的连接字符串,可以使用EntityConnectionSTring生成器

var builder = new EntityConnectionStringBuilder(entityConnectionString);
string sqlConnString = builder.ConnectionString;
然后使用该连接字符串初始化SimpleMembershipProvider

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

显然,Entity不适用于此,即使使用allo_man建议的类。然而,如果我在Web.config中添加另一个使用System.Data.SqlClient的连接字符串,然后将其与InitializeDatabaseConnection()一起使用,它就可以工作了。显然,Entity对此不起作用,即使使用allo_man建议的类。但是,如果我在Web.config中添加另一个使用System.Data.SqlClient的连接字符串,然后将其与InitializeDatabaseConnection()一起使用,它会起作用。

您是否安装了Sql Server Ce.4.0?@Oscar是的,我安装了“Microsoft Sql Server Compact 4.0 SP1 x64 ENU”。您的数据库是SQLCE 4.0的LocalDB?@allo_man Nope,SQL CE甚至不应该与这整件事有任何关系。我已将System.Data.EntityClient添加到我的DbProviderFactorys中,现在我收到一个不同的错误(仍在同一个函数调用中):
参数名“0”无效。有效的参数名必须以字母开头,并且只包含字母、数字和下划线。
回调中的最后一个函数是
System.Data.EntityClient.EntityParameter.SetParameterNameWithValidation(String parameterName,String argumentName)+8086976
,所以我猜parameterName得到的是0?我不知道0来自哪里…看看这个anwser。安装Sql Server Ce可能会有帮助。4.0?@Oscar是的,我已经安装了“Microsoft Sql Server Compact 4.0 SP1 x64 ENU”。您的数据库是SQLCE 4.0的LocalDB?@allo_man不,Sql Ce甚至不应该与整件事有任何关系。我已将System.Data.EntityClient添加到我的DbProviderFactorys中,现在我收到一个不同的错误(仍在同一个函数调用中):
参数名“0”无效。有效的参数名必须以字母开头,并且只包含字母、数字和下划线。
回调中的最后一个函数是
System.Data.EntityClient.EntityParameter.SetParameterNameWithValidation(String parameterName,String argumentName)+8086976
,所以我猜parameterName得到的是0?我不知道0来自哪里…看看这个anwser。这可能会有帮助。谢谢你,这很有帮助。但是,我仍然从InitializeDatabaseConnection()-“路径中的非法字符”中收到错误。有关详细信息,请参阅我在原始帖子中的编辑。能否从调试器发布entityBuilder.ConnectionString的内容?谢谢,这很有帮助。但是,我仍然从InitializeDatabaseConnection()-“路径中的非法字符”中收到错误。有关详细信息,请参阅我在原始帖子中的编辑。能否从调试器发布entityBuilder.ConnectionString的内容?
WebSecurity.InitializeDatabaseConnection(sqlConnString, "User", "UserId", "UserName", autoCreateTables: true);