我正在尝试使用 SQL Server 存储过程而不是 GUI 创建 Umbraco 成员。
使用 SQL Server Profiler 我可以看到有一个我可以使用的函数:
exec sp_executesql N'INSERT INTO [cmsMember] ([nodeId],[Email],[LoginName],[Password]) VALUES (@0,@1,@2,@3)',
N'@0 int,@1 nvarchar(4000),@2 nvarchar(4000),@3 nvarchar(4000)',
@0=1052, @1=N'[email protected]', @2=N'Test2',
@3=N'HMMB0498bIiVQ+EoO3ywJQ==6TdcRwNTt/MqaxS1O/ZiQ3906Vd3GcVfgiNHGFWBiTw='
除了nodeId不是唯一的。因为成员是链接到节点的。
我已经创建了一个存储过程来创建 Umbraco 用户,它只需要 2 个插入查询。但看来 Umbraco 成员需要 10 个插入。
是否可以通过这种方式创建会员?
您永远不应该尝试直接连接到 Umbraco 数据库,因为它可能会出现一些意外的问题。每个版本都使数据库更加稳定且不易出错。但为了确保您不会搞砸事情,强烈建议您使用 Umbraco 中的“服务”。这些服务可以注入 Umbraco 中,并可以直接从数据库存储(和检索)。
要使用它们,只需将 IMemberService 注入到您的类中。
public class MyClass
{
private IMemberService _memberService;
public MyClass(IMemberService memberService)
{
_memberService = memberService;
}
}