gpt4 book ai didi

c# - 如何在 ef core 中获取具有条件顺序的实体

转载 作者:行者123 更新时间:2023-12-04 08:23:00 25 4
gpt4 key购买 nike

我有 OR 条件查询:

 MainContext mainContext = new MainContext();
var entities = mainContext.GetEntities<Student>().Where(s =>
s.Guid == new Guid("4A6C8A8D-92E5-48A4-1C53-08D8A65747F0") ||
s.Guid == new Guid("D3D41AA0-8E68-43FA-1C51-08D8A65747F0") ||
s.Guid == new Guid("6304347D-A169-4251-1C52-08D8A65747F0")).ToList();
我想获得具有“正确”顺序的实体实例。我期待:
 var first = entities[0]; // 4A6C8A8D-92E5-48A4-1C53-08D8A65747F0
var second = entities[1];//D3D41AA0-8E68-43FA-1C51-08D8A65747F0
var third = entities[2];//6304347D-A169-4251-1C52-08D8A65747F0
但实际结果是:
    var first = entities[0]; // D3D41AA0-8E68-43FA-1C51-08D8A65747F0
var second = entities[1];//6304347D-A169-4251-1C52-08D8A65747F0
var third = entities[2];//4A6C8A8D-92E5-48A4-1C53-08D8A65747F0
如何向数据库订购或订购查询?
主上下文类:
public class MainContext : DbContext
{
public MainContext()
{
Database.EnsureCreated();
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer($"Server=localhost;Database=EFCoreLessonDecimalCHeck;Trusted_Connection=True;MultipleActiveResultSets=true");
base.OnConfiguring(optionsBuilder);
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().HasKey(d => d.Guid);
modelBuilder.Entity<Person>().Property(s => s.DecimalProperty).HasDefaultValue(0).HasColumnType("decimal(28,10)");
modelBuilder.Entity<Student>();
modelBuilder.Entity<Teacher>();
base.OnModelCreating(modelBuilder);
}

public IQueryable<T> GetEntities<T>() where T : class
{
return Set<T>();
}
}

最佳答案

只需使用以下命令:

     var entities = mainContext.GetEntities<Student>().Where(s =>
s.Guid == new Guid("4A6C8A8D-92E5-48A4-1C53-08D8A65747F0") ||
s.Guid == new Guid("D3D41AA0-8E68-43FA-1C51-08D8A65747F0") ||
s.Guid == new Guid("6304347D-A169-4251-1C52-08D8A65747F0"))
.ToList()
.OrderByDescending(x => x.Guid == "4A6C8A8D-92E5-48A4-1C53-08D8A65747F0")
.ThenByDescending(x => x.Guid == "D3D41AA0-8E68-43FA-1C51-08D8A65747F0")
.ThenByDescending(x => x.Guid == "6304347D-A169-4251-1C52-08D8A65747F0")
.ToList();
LIVE DEMO

关于c# - 如何在 ef core 中获取具有条件顺序的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65405850/

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