实体框架:保存私有字段

问题描述 投票:0回答:1

我正在将实体框架与 MongoDB 结合使用。我有一堂课,

Account
,具有以下字段:

private readonly byte[] salt;

帐户在实体框架中配置如下:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Account>().ToCollection("accounts");
}

当我将

Account
保存到我的数据库时,相应的文档没有
salt

如何使用实体框架在数据库中存储字段或属性,同时保持其私有?

c# asp.net .net mongodb entity-framework
1个回答
0
投票

您应该实现一个支持字段

  1. 使用支持字段配置
    Salt
    属性:
    salt
internal class Account : SignInCredentials
{
    private readonly byte[] salt;

    public byte[] Salt
    {
        get { return salt; }
    }

    ...
}
  1. 在 Fluent API 中使用支持字段配置
    Salt
internal class MongoDataContext : DbContext
{
    ...

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Account>()
            .Property(x => x.Salt)
            .HasField("salt");

        modelBuilder.Entity<Account>()
            .ToCollection("accounts");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.