-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Blocker - P1
-
None
-
Affects Version/s: 1.10
-
Component/s: None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Here is the code
C#
public class MainMongo
{
public MongoDB.Bson.ObjectId Id { get; set; }
}
public class DbRef<T> : MongoDB.Driver.MongoDBRef
{
public DbRef(string ColName, MongoDB.Bson.BsonValue Id) : base(ColName, Id)
{
}
[MongoDB.Bson.Serialization.Attributes.BsonIgnore()]
public T Value
{
get
{
return new MongoDB.Driver.MongoClient("mongodb://localhost").GetServer().GetDatabase("Wik").FetchDBRefAs<T>(this);
}
}
}
public class Car : MainMongo
{
public DateTime BuildDate { get; set; }
}
public class Player : MainMongo
{
public string Name { get; set; }
public List<DbRef<Car>> Cars { get; set; }
}
//Here is code that uses database
var CarCol = mdb.GetCollection<Car>("Car");
var PlayerCol = mdb.GetCollection<Player>("Player");
CarCol.Drop();
PlayerCol.Drop();
var Ca = new Car() { BuildDate = DateTime.Now };
CarCol.Save<Car>(Ca);
var Pl = new Player() { Name = "Mohsen", Cars = new List<DbRef<Car>>(new DbRef<Car>[] { new DbRef<Car>("Car", Ca.Id) }) };
PlayerCol.Save<Player>(Pl);
var GetCarDbRef = PlayerCol.AsQueryable().OfType<Player>().FirstOrDefault().Cars.FirstOrDefault();
bool IsNull1 = GetCarDbRef.CollectionName == null; //true
bool IsNull2 = GetCarDbRef.DatabaseName == null; //true
bool IsNull3 = GetCarDbRef.Id == null; //true
All values of DbRef which has inherited from MongoDbRef are null!