小编rar*_*esm的帖子

如果为null或为空,请勿插入字段

我有一个带有一些字段的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.

c# mongodb

8
推荐指数
2
解决办法
5870
查看次数

列表到词典<键,列表<值>> - C#

我有一个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>>.

c# dictionary list

7
推荐指数
1
解决办法
4179
查看次数

asp.net标识 - SetPasswordHashAsync

我正在尝试配置身份以使用自定义提供程序.到目前为止一切都很好,我创造了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,我在这里看不到异步.

  1. 为什么返回类型是Task SetPasswordHashAsync而不仅仅是void?
  2. 我应该如何实施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()

任何人?

c# asp.net asynchronous asp.net-identity

7
推荐指数
1
解决办法
2737
查看次数