gpt4 book ai didi

c# - 当我有一个实体时,动态地在 DbContext 中查找指定的通用 DbSet

转载 作者:IT王子 更新时间:2023-10-29 04:18:18 25 4
gpt4 key购买 nike

我有以下类和 DbContext:

public class Order : BaseEntity
{
public Number {get; set;}
}
public class Product : BaseEntity;
{
public Name {get; set;}
}

public class Context : DbContext
{
....
public DbSet<Order> Orders { set; get; }
public DbSet<Product> Products { set; get; }
....
}

我也有一个要添加到我的上下文中的对象列表,但我不知道如何根据每个实体类型动态地找到合适的通用 DbSet

IList<BaseEntity> list = new List<BaseEntity>();
Order o1 = new Order();
o1.Numner = "Ord1";
list.Add(o1);

Product p1 = new Product();
p1.Name = "Pencil";
list.Add(p1);

Context cntx = new Context();
foreach (BaseEntity entity in list)
{
cntx.Set<?>().Add(entity);
}

我该怎么做?

最佳答案

DbContext 有一个名为 Set 的方法,您可以使用它来获取非泛型 DbSet,例如:

var someDbSet = this.Set(typeof(SomeEntity));

所以在你的情况下:

foreach (BaseEntity entity in list)
{
cntx.Set(entity.GetType()).Add(entity);
}

关于c# - 当我有一个实体时,动态地在 DbContext 中查找指定的通用 DbSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533506/

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