gpt4 book ai didi

c# - 在 Entity Framework 的动态 dbset 中使用 where 子句

转载 作者:行者123 更新时间:2023-11-30 17:34:39 26 4
gpt4 key购买 nike

目前我正在使用以下代码块动态创建 DbSet 并从中检索数据 -

Type entityType = Type.GetType("MyProject.Models."+ EntityName + ", SkyTracker");
DbSet mySet = Db.Set(entityType);

foreach (var entity in mySet)
{

}

我想在这里使用 Where 子句,即 .Where(m=>m.Id==1) 或类似的东西。

有什么办法吗?

最佳答案

你应该在这里使用泛型来简化它。

public DbSet<T> GetDbSet<T>() where T: class
{
DbContext db = new DbContext("");
return db.Set<T>();
}

public List<T> GetFilteredData<T>(Expression<Func<T, bool>> criteria) where T : class
{
DbContext db = new DbContext("");
return db.Set<T>().Where(criteria).ToList();
}

您可以按如下方式调用这些方法。

Expression<Func<AudioClass, bool>> criteria = ac => ac.Name == "jazz";

var result = GetFilteredData(criteria);

这里的 AudioClass 只是我创建的示例类。

这应该可以帮助您实现您想要的行为。

关于c# - 在 Entity Framework 的动态 dbset 中使用 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42104590/

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