/// <summary>
        /// Searches the context for a trait that matches the given name, creating one if none are found
        /// </summary>
        internal static Trait GetTraitByName(this IRemsDbContext context, string name)
        {
            var trait = context.Traits.ToArray().FirstOrDefault(t => t.NameMatches(name));

            if (trait is null)
            {
                trait = new Trait()
                {
                    Name = name
                };
                context.Add(trait);
            }

            context.SaveChanges();
            return(trait);
        }
        /// <summary>
        /// Adds a trait to the database
        /// </summary>
        /// <param name="name">Trait name</param>
        /// <param name="type">Trait type</param>
        /// <returns></returns>
        internal static Trait AddTrait(this IRemsDbContext context, string name, string type)
        {
            var unit = context.Units.FirstOrDefault(u => u.Name == "-");

            if (unit is null)
            {
                unit = new Domain.Entities.Unit()
                {
                    Name = "-"
                }
            }
            ;

            var trait = new Trait()
            {
                Name = name,
                Type = type,
                Unit = unit
            };

            context.Add(trait);
            context.SaveChanges();
            return(trait);
        }