【发布时间】:2018-02-17 06:17:01
【问题描述】:
我是 C# 的新手,来自 ruby 世界,ruby mongodb 驱动程序为所有有关保存和更新的文档提供了created_at 和updated_at 字段。不幸的是,在网上搜索后,这似乎在 c# 中并不常见。
我想知道如何在持久化时将文档CreatedAt 字段默认为Time.Now?
using System;
using System.Collections.Generic;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
namespace MongoDBConsole
{
class Program
{
public static void Main(string[] args)
{
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("mongodb_console");
var collection = database.GetCollection<Person>("person");
var person = new Person
{
Name = "John Doe",
Age = 25
};
collection.InsertOne(person);
}
}
class Person
{
public string Name { get; set; }
[BsonIgnoreIfNull]
public int? Age { get; set; }
[BsonDefaultValue(DateTime.Now)] // <-- this errors out
private DateTime CreatedAt { get; set; }
}
}
编辑:
我问这个问题的目的是防止我每次实例化一个新的Person 类对象时都必须添加一个CreatedAt 字段。每当 Person 类持久化到 MongoDB 时,应自动设置 CreatedAt。每次保存文档时都可以轻松设置它,但这不是很干。我希望复制另一种编程语言中存在的功能。
【问题讨论】:
-
那是猫鼬(nodejs)而不是c#@ChrisCarr