Por exemplo, utilizamos atributos para realizar configurações, como segue:
public class Student
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
[Required(ErrorMessage = "First name is required")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Last name is required")]
public string LastName { get; set; }
public string Major { get; set; }
[BsonRepresentation(BsonType.ObjectId)]
public List<string> Courses {get; set;}
[BsonIgnore]
public List<Course> CourseList {get; set;}
}
Existe uma outra forma de fazer isso, tipo em uma classe separada? Algo semelhante à FluentApi que temos no EFCore, que deixa as classes de domínio totalmente desacopladas do mapeamento com o banco de dados.