Я ищу решение для хранения неизменяемых данных в моем коде вместо базы данных.В конкретном случае я хочу иметь дело с единицами.Вот пример для единиц веса (они не изменятся, поэтому их можно хранить в моем коде):
public class Unit
{
public Unit() { }
public Unit(string name, string symbol, double factor, Unit baseUnit, UnitType unitType)
{
this.Name = name;
this.Symbol = symbol;
this.Factor = factor;
this.BaseUnit = baseUnit;
this.UnitType = unitType;
}
public int Id { get; set; }
public string Name { get; set; }
public UnitType UnitType { get; set; }
public string Symbol { get; set; }
public string NamePlural { get; set; }
public Unit BaseUnit { get; set; }
public double Factor { get; set; }
}
public static class TimeUnits
{
public static Unit second = new Unit("second", "s", 1, null, UnitTypes.Time);
public static Unit microsecond = new Unit("microsecond", "μs", 0.000001, second, UnitTypes.Time);
public static Unit millisecond = new Unit("millisecond", "ms", 0.001, second, UnitTypes.Time);
public static Unit minute = new Unit("minute", "min", 60.0, second, UnitTypes.Time);
public static Unit hour = new Unit("hour", "h", 3600.0, second, UnitTypes.Time);
public static Unit day = new Unit("day", "d", 24.0, hour, UnitTypes.Time);
public static Unit week = new Unit("week", "w", 7, day, UnitTypes.Time);
}
Как уже говорилось, я не хочу хранить эту неизменяемую информацию в БД в порядкечтобы избежать дополнительных союзов для ef-core при получении данных из базы данных.
В случае пола я просто использую enum:
public enum Gender
{
male = 1,
female = 2,
not_applicable = 9,
dont_want_to_share = 10
}
Я хотел бы получить аналогичныйрешение для подразделений.Но у перечисления есть только идентификатор и имя.Для таких вещей, как показанные выше единицы измерения или другие случаи, мне нужны дополнительные свойства (например, factore, unitType и т. Д.).Большое спасибо за любой намек на то, как я смог добиться этого, чтобы ядро загружало эти значения так же, как это делает с перечислениями.