【问题标题】:c# MVC 5 User Store custom findbyc#MVC 5用户存储自定义findby
【发布时间】:2015-12-09 01:52:14
【问题描述】:

默认提供的 FindByIdAsync、FindById 等按预期工作。

我将如何实施 FindBySomeOtherField?

至少我希望能够从主 AspNetUsers 表中查找 UserManager.FindBy 任何字段。如 UserManager.FindByPhoneNumber

理想情况下,我可以使用 UserManager.FindByCustomField

我不想实现一个全新的用户存储。

我想最坏的情况是,我可以按原样查找并复制 MVC 5 的整个用户存储并将其添加到我的项目中,然后实现它,但是,我宁愿只添加一个包含该函数的类并成为完成,因为我更喜欢用户存储,只是想扩展它的功能。

【问题讨论】:

  • 是否需要进入UserManager?您可以通过实体框架直接查询表。在好的情况下,这就是UserManager 最终所做的。
  • 将实体框架添加到您的项目中,然后使用FirstOrDefault()
  • 是的,该解决方案可行,我更喜欢更优雅的解决方案。

标签: c# asp.net-mvc model-view-controller asp.net-mvc-5 .net-4.6


【解决方案1】:

不确定我是否理解正确,但以下应该可以吗?

IEnumerable<[Object]> results = [ObjectCollection].Where(u => u.[Field] == [Value])

[Object] result = [ObjectCollection].SingleOrDefault(u => u.[Field] == [Value])

如果你想要一个特定的字段,你可以将它提取到一个方法中;

public [Object] FindBy[Field]([FieldType] value)
{
    return [ObjectCollection].SingleOrDefault(u => u.[Field] == [Value])
}

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    相关资源
    最近更新 更多