using MongoDB.Bson.Serialization.Attributes; namespace Model { [BsonIgnoreExtraElements] public abstract partial class Component: Disposer { [BsonIgnoreIfDefault] [BsonDefaultValue(0L)] [BsonElement] [BsonId] public long Id { get; set; } [BsonIgnore] public Disposer Parent { get; set; } public T GetParent() where T : Disposer { return this.Parent as T; } public Entity Entity { get { return this.Parent as Entity; } } public override void Dispose() { if (this.IsDisposed) { return; } base.Dispose(); } } }