我正在尝试从数据库中导出成员属性,例如名字、姓氏,但我似乎找不到它。我看到有一个带有正确列的 loginUser 表,但它似乎只包含 5 个条目,而不是我在管理界面中看到的完整人员列表。
问问题
5751 次
2 回答
13
道格拉斯是对的,访问会员提供商可能更容易。
但是我最近在做一个项目,我们需要对一个相当大的会员群做一些查询,并且会员 API 太慢,所以我们做了以下视图。希望有帮助:
SELECT MEMBTYPEID.text AS MemberType, MEMBLST.nodeId, MEMBTYPES.Name AS MemberField, MEMBTYPES.Alias AS MemberFieldAlias, MEMB.LoginName,
(CASE WHEN MEMBDATA.[dataInt] IS NOT NULL THEN CONVERT(NVARCHAR(500), MEMBDATA.[dataInt]) ELSE MEMBDATA.[dataNvarchar] END)
AS MemberData
FROM dbo.umbracoNode AS MEMBTYPEID INNER JOIN
dbo.cmsContent AS MEMBLST ON MEMBLST.contentType = MEMBTYPEID.id INNER JOIN
dbo.cmsPropertyType AS MEMBTYPES ON MEMBTYPES.contentTypeId = MEMBLST.contentType INNER JOIN
dbo.cmsPropertyData AS MEMBDATA ON MEMBDATA.contentNodeId = MEMBLST.nodeId AND MEMBDATA.propertytypeid = MEMBTYPES.id INNER JOIN
dbo.cmsMember AS MEMB ON MEMB.nodeId = MEMBLST.nodeId
WHERE (MEMBTYPEID.nodeObjectType = '9b5416fb-e72f-45a9-a07b-5a9a2709ce43')
“where”子句只是将节点过滤为 Member 类型(我不知道这个 GUID 是否对于所有实现都是常量,请先检查)
于 2013-01-30T20:11:58.570 回答
9
成员属性存储在cmsPropertyData
表中。将contentNodeId
对应于成员的 id。
使用 api 导出数据可能更容易。Umbraco 使用标准的 ASP.NET Membership Provider 模型。有关更多详细信息,请参阅会员提供者。
于 2013-01-15T19:49:55.063 回答