Почему есть разница между идентификаторами в базе данных и моим кодом отладки с использованием MongoDb.Driver
Я пытался сохранить конкретный класс с именем User, который наследует Entity. Я не могу понять, почему идентификаторы отличаются от базы данных и отладки кода. Я использую C# с MongoDb.Driver.
public abstract class Entity : IEntity
{
public Guid Id { get; protected set; }
public string Description { get; protected set; }
}
public class User : Entity
{
public string Issuer { get; protected set; }
public string Subject { get; protected set; }
public IEnumerable<string> Roles { get; protected set; }
public User(string issuer, string subject, IEnumerable<string> roles = null)
{
Issuer = issuer;
Subject = subject;
Roles = roles;
}
}
Для справки, это мой репозиторий с его методом Save.
public class UserRepository
{
private readonly string _connectionString;
private readonly string _databaseName;
protected string CollectionName => "user";
protected RepositoryAbstract(IMongoStorageConnection mongoStorageConnection)
{
_connectionString = mongoStorageConnection.ConnectionString;
_databaseName = mongoStorageConnection.DatabaseName;
}
protected IMongoQueryable<User> MongoCollectionQuery => MongoCollection.AsQueryable();
protected IMongoCollection<User> MongoCollection => MongoDatabase.GetCollection<User>(CollectionName);
private IMongoDatabase MongoDatabase => MongoClient.GetDatabase(_databaseName);
private MongoClient MongoClient
{
get
{
MongoUrl mongoUrl = new MongoUrl(_connectionString);
MongoClientSettings settings = MongoClientSettings.FromUrl(mongoUrl);
settings.SslSettings = new SslSettings
{
EnabledSslProtocols = SslProtocols.Tls12
};
MongoClient mongoClient = new MongoClient(settings);
return mongoClient;
}
}
public async Task SaveAsync(User entity) => await MongoCollection.InsertOneAsync(entity);
}
Когда я пытаюсь сохранить пользователя в базе данных, поле _id, хранящееся в базе данных, отличается от идентификатора, который отображается в моем коде.
Кто-нибудь может объяснить почему?