在MongoDB for C#中有一种隐式排除成员但仍能明确获取它们的方法吗?

时间:2016-05-30 21:43:43

标签: c# mongodb mongodb-.net-driver c#-5.0 mongodb-csharp-2.0

有没有办法隐式排除C# MongoDB中某些数据库模型中的某些字段/类型,同时仍允许明确地获取它们?例如,我有一个Model,其中有两个列表:

public class Model {
    public string SomeName;
    public List<string> ManyManyStrings; // exclude implicitly?
    public List<ComplexType> VeryBigList; // exclude implicitly?
    public int SomeNumber;
    public byte[] LittleArrayOfBytes_NotBigDeal;
}

当我致电IMongoCollection<Model>.Find(SomeFilter)时,我必须明确排除ManyManyStringsVeryBigList

var fastModel = modelCollection.Find(SomeFilter).Project<Model>(
    Builders<Model>.Projection
        .Exclude(m => m.ManyManyStrings)
        .Exclude(m => m.VeryBigList));

是的,我可以将它们分为不同的类型或不同的Collection,并通过ObjectId左右关联它们。

但模型是如此&#34;对&#34;!他们只需要在那里,逻辑上......我的Model ManyManyStringsVeryBigList,它只是在Model和其他一些集合中的List<string> ManyManyStringsList<ComplexType> VeryBigList列表之间开始链接真是太痛苦了......

(顺便说一句,我不认为[BsonIgnore]会在这里提供帮助,因为它也会阻止显式检索。或者我错了?有没有办法绕过&#34;它? )

0 个答案:

没有答案