using MongoDB.Bson.Serialization;
using MongoDB.Driver.Linq;
public virtual int Id { get; set; }
public virtual int Id { get; set; }
public virtual Factory Factory { get; set; }
public virtual int Id { get; set; }
public virtual int FactoryId { get; set; }
public static void Main()
var client = new MongoClient("mongodb://localhost/test");
var db = client.GetDatabase("test");
BsonClassMap.RegisterClassMap<Order>(m =>
m.MapIdProperty(x => x.Id);
m.MapProperty(x => x.FactoryId);
var currentUser = new User();
.GetCollection<Order>("orders").AsQueryable()
.Where(x => currentUser.Factory == null || x.FactoryId == currentUser.Factory.Id)
currentUser.Factory = new Factory();
.GetCollection<Order>("orders").AsQueryable()
.Where(x => currentUser.Factory == null || x.FactoryId == currentUser.Factory.Id)