我有一个带有一些字段的C#类,其中一些是null.那些为null我不想插入带有null值的db.我根本不希望它们插入到db中.我如何实现这一目标?
class User
{
public string FirstName;
public string LastName;
public string MidName;
}
Run Code Online (Sandbox Code Playgroud)
并非每个用户都有MidName,但是Mongo会在MidName字段中插入带有空值的db.
我有一个List和MyClass是:
public class MyClass
{
public bool Selected { get; set; }
public Guid NoticeID { get; set; }
public Guid TypeID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何将此列表转换为a Dictionary<Guid, List<Guid>>,其中字典键是TypeID属性中的GUID ,值是与该列表NoticeID对应的所有值的列表TypeID.我试过这样:
list.GroupBy(p => p.TypeID).ToDictionary(p => p.Key, p => p.ToList())
Run Code Online (Sandbox Code Playgroud)
但这会返回一个Dictionary <Guid, List<MyClass>>,我想要一个Dictionary<Guid, List<Guid>>.
我正在尝试配置身份以使用自定义提供程序.到目前为止一切都很好,我创造了UserStore:
public class UserStore : IUserStore<User>, IUserPasswordStore<User>
Run Code Online (Sandbox Code Playgroud)
(实现所有方法)和UserManager:
public UserManager(IUserStore<User> userStore)
: base(userStore)
{ }
Run Code Online (Sandbox Code Playgroud)
用户是我的自定义实体来容纳用户.
问题是,UserStore我有以下内容:
public async Task SetPasswordHashAsync(User user, string passwordHash)
Run Code Online (Sandbox Code Playgroud)
根据我的理解,这是在用户创建之前调用的,所以我应该在这里做的是:
public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
}
Run Code Online (Sandbox Code Playgroud)
...但是这必须返回一个Task,我在这里看不到异步.
SetPasswordHashAsync而不仅仅是void?SetPasswordHashAsync?我知道我可以做点什么
public async Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
await Task.FromResult(0);
}
Run Code Online (Sandbox Code Playgroud)
......但这不是同步的吗?看到用asyncTask和use 装饰的所有其他方法很奇怪await,而且这个方法要返回Task.FromResult()
任何人?