本文介绍了EF核心枚举列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在开发一个在实体框架核心中组织酒店预订的小型应用程序。我需要添加有关每个房间的床位数量和类型的信息。我在想,我决定将枚举列表存储在单独的表中,这样会更好。但我不知道如何实现它
public enum Bed { Single = 1, Double = 2, } public class Room : IEntity { [Key] public int Id { get; set; } public string RoomIdentifier { get; set; } public ICollection<Bed> Beds { get; set; } public int Floor { get; set; } public double Price { get; set; } public bool IsFree { get; set; } public bool IsOutOfService { get; set; } public bool ShouldBeCleaned { get; set; } public ICollection<RoomReservation> RoomReservations { get; set; } }这样做有可能吗?我还在考虑将其保存为(1,2,1,2)这样的字符串,然后对其进行解析,以获得房间中床位的数量和类型。非常感谢您的帮助!
推荐答案以下是虚构对象名称的示例,希望对您有所帮助。
在OnModel Creating中:
modelBuilder.Entity<Room>() .Property(e => e.BedList) .HasConversion( v => string.Join(',', v), v => v.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList() ?? new List<Bed>()) .Metadata.SetValueComparer(valueComparer); 您必须在下面创建您自己的值比较示例 查看列表: var valueComparer = new ValueComparer<ICollection<string>>( (c1, c2) => c1.SequenceEqual(c2), c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())), c => (ICollection<string>)c.ToHashSet());更多推荐
EF核心枚举列表
发布评论