0

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

由 Simple Membership 创建的主 User 表中包含 UserName。我在应用程序中还有其他几个地方需要查询此表,特别是用户名。简单成员不使用连接字符串中的 Data.EntityClient,所以我将它设置为 SqlClient。

所以因为我没有提供者用户表的实体模型,我不知道如何查询它。通常我会创建一个实体模型的实例并在其上使用 LINQ,但是当我尝试它时,我得到一个关于首先将代码与实体混合的非常冗长的错误。我已经修改了“initialSimpleMembershipAttribute”,因此它指向我为会员表创建的单独连接字符串。

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

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

4

1 回答 1

0

你把事情复杂化了。

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

WebSecurity.InitializeDatabaseConnection("YourConnection", "WhateverYouCallYourUserTable", 
    "WhateverYourUserIdIs", "WhateverYourUserNameColumnIs", autoCreateTables: true);
于 2013-05-12T05:34:10.557 回答