c#MVC 5用户存储自定义查找方式

c#MVC 5用户存储自定义查找方式,c#,asp.net-mvc,model-view-controller,asp.net-mvc-5,.net-4.6,C#,Asp.net Mvc,Model View Controller,Asp.net Mvc 5,.net 4.6,默认提供的FindByIdAsync、FindById等按预期工作 我将如何实现FindBySomeOtherField 至少,我希望能够通过主AspNetUsers表外的任何字段查找UserManager.find。例如UserManager.FindByPhoneNumber 理想情况下,我能够访问UserManager.FindByCustomField 我不想实现一个全新的用户存储 我想最坏的情况是,我可以找到并复制MVC 5的整个用户存储区,并将其添加到我的项目中,然后实现它,然而,我

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

我将如何实现FindBySomeOtherField

至少,我希望能够通过主AspNetUsers表外的任何字段查找UserManager.find。例如UserManager.FindByPhoneNumber

理想情况下,我能够访问UserManager.FindByCustomField

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


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

不确定我是否理解正确,但是下面的方法应该有效吗

IEnumerable<[Object]> results = [ObjectCollection].Where(u => u.[Field] == [Value])
如果您想将其用于特定字段,可以将其提取到方法中

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

是否需要进入
用户管理器
?您可以通过实体框架直接查询表。在好的情况下,
UserManager
最终就是这样做的。将实体框架添加到您的项目中,然后使用“是”,该解决方案会起作用,我更喜欢更优雅的解决方案。
public [Object] FindBy[Field]([FieldType] value)
{
    return [ObjectCollection].SingleOrDefault(u => u.[Field] == [Value])
}