我有一个带有guid列的文档Docs,author_id,它应该引用MembershipUser。
我正在使用标准的MembershipProvider(我只更改了数据库名称),当然我没有MembershipUsers的模型。
我可以轻松地在类Docs中定义一些方法,以获取Doc的MembershipUser和MembershipUser的所有文档,但有些事情很棘手(列出用户,显示每个用户有多少文档);此外,我觉得我以一种奇怪的方式使用MVC:在我看来,如果我有一个MembershipUsers模型会更容易......
我该如何实现这种关系?我应该为MembershipUsers实现模型吗?
感谢
更新:我意识到我一点也不清楚。
说我想列出我的所有用户及其文档。 一种方法是:
ViewModel model = new ViewModel()
{
Users = from MembershipUser user in Membership.GetAllUsers(page, pagesize, out totalusers)
select new UserWithDocs
{
User = user,
Docs = context.Docs.Where(c => c.author_id == (Guid) user.ProviderUserKey)
},
UsersCount = totalusers
};
这样可行,但会为每个用户生成一个单独的查询。
我可以获取一系列用户的guid然后查询文档where author_id IN list_of_guids
,但之后我应该手动将每个文档与其作者关联。
什么是更好的解决方案?
答案 0 :(得分:0)
不确定我是否理解正确,但您可以使用MembershipUser类作为用户的模型。如果你想引用用户到你的“doc”模型,你可以简单地向你的模型类添加一个属性“Author”,当你从DB中获取模型时,你也可以得到用户。
Membership类包含一些静态方法,用于列出所有用户,添加/删除用户等。