Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/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
Asp.net mvc 4 MVC4 SimpleMembership连接字符串_Asp.net Mvc 4_Simplemembership - Fatal编程技术网

Asp.net mvc 4 MVC4 SimpleMembership连接字符串

Asp.net mvc 4 MVC4 SimpleMembership连接字符串,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我有一个DB First EF5项目,我正在其中实现SimpleMembership。我的大部分工作正常,但有一个问题出现了 简单成员身份创建的主用户表中有用户名。我在应用程序中还有几个地方需要查询这个表,特别是用户名。简单成员身份不使用连接字符串中的Data.EntityClient,因此我将其设置为SqlClient 因此,因为我没有一个包含提供者用户表的实体模型,所以我不确定如何查询它。通常我会创建实体模型的一个实例并在其上使用LINQ,但当我尝试它时,我会遇到一个非常冗长的错误,即首先混

我有一个DB First EF5项目,我正在其中实现SimpleMembership。我的大部分工作正常,但有一个问题出现了

简单成员身份创建的主用户表中有用户名。我在应用程序中还有几个地方需要查询这个表,特别是用户名。简单成员身份不使用连接字符串中的Data.EntityClient,因此我将其设置为SqlClient

因此,因为我没有一个包含提供者用户表的实体模型,所以我不确定如何查询它。通常我会创建实体模型的一个实例并在其上使用LINQ,但当我尝试它时,我会遇到一个非常冗长的错误,即首先混合代码和实体。我修改了'initialSimpleMembershipAttribute',因此它指向我为成员资格表创建的单独连接字符串

我想到的一个解决方案是保存用户,然后将用户名复制到我的一个自定义表中,然后我可以通过EF查询它,但这似乎违反了复制数据的某种数据库“最佳实践”


我的另一个想法是为成员身份创建的表创建第二个edmx模型,但是如果SimpleMembership不使用EntityClient,这是否也意味着它将无法识别实体模型

你把事情复杂化了

如果您有自己的模型,那么您可以摆脱默认模板提供给您的模型,而使用您的模型。不管是代码优先还是数据库优先或其他什么。只需更改Initialize SimpleMembershipAttribute以删除对它们提供给您的默认模型的引用,并确保正确修改InitializeDatabaseConnection调用

WebSecurity.InitializeDatabaseConnection("YourConnection", "WhateverYouCallYourUserTable", 
    "WhateverYourUserIdIs", "WhateverYourUserNameColumnIs", autoCreateTables: true);

好的,我能做到。但我仍然需要分离连接字符串,对吗?@teahou-我不明白你所说的“分离连接字符串”是什么意思。如果您有自己的数据库和模型,则只有一个连接字符串。一个用于simplemembership表,它使用System.Data.SqlClient提供程序,另一个用于实体模型,它包含所有其他表并使用System.Data.EntityClient。这是根据这篇文章:。正如你所说,我最初的想法是,这不应该那么难。请让我知道如何简化这个所谓的简单会员。@teahou-ah。。是的,你只有两个指向同一个数据库的连接字符串。这让我们回到原来的问题,我应该也有两个edmx模型吗?如果不是,如何使用system.data.sqlclient连接查询表?