gpt4 book ai didi

c# - EF 核心枚举列表

转载 作者:行者123 更新时间:2023-12-04 12:05:07 28 4
gpt4 key购买 nike

我正在开发小型应用程序,在 Entity Framework Core 中组织酒店预订。我需要添加有关每个房间床位数量和类型的信息。我在想,我决定枚举列表会比将它存储在单独的表中更好。但我不知道如何实现它

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) 这样的字符串,然后解析它以接收房间内床的数量和类型。非常感谢您的帮助!

最佳答案

这是一个由对象名称组成的示例,希望它有所帮助。
在 OnModelCreating 中:

modelBuilder.Entity<Room>()
.Property(e => e.BedList)
.HasConversion(
v => string.Join(',', v),
v => v.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList() ?? new List<Bed>())
.Metadata.SetValueComparer(valueComparer);
您必须在下面创建自己的 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());

关于c# - EF 核心枚举列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65328620/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com