之前提到要研究的,終於想起來補上
dotnet add package MongoDB.Extensions.Migration
public class User : IVersioned
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("username")]
public string Username { get; set; } = null!;
[JsonIgnore]
public string Password { get; set; } = null!;
[BsonElement("version")]
public int Version { get; set; } = 2;
}
public class ReviseUserNameMigration : IMigration
{
public int Version => 2;
public void Up(BsonDocument doc)
{
if (doc.Contains("account"))
{
doc["username"] = doc["account"];
doc.Remove("account");
}
// Update Version
doc["version"] = Version;
}
public void Down(BsonDocument doc)
{
if (doc.Contains("username"))
{
doc["account"] = doc["username"];
doc.Remove("username");
}
doc["version"] = Version - 1;
}
}
app.UseMongoMigration(m => m
.ForEntity<User>(e => e
.AtVersion(2)
.WithMigration(new ReviseUserNameMigration())));
Writing Migrations for MongoDB in C#
總覺得這系列好難收尾阿,居然只剩一天了