我正在使用 Entity Framework 代码优先,这是我的DbContext。如您所见,没有任何关于 DbSet<> 属性的信息,所有这些属性都将从 C# CodeDOM
提供的我的模型类中提供。我正在使用代码优先动态创建我的表。
public class MyDBContext : DbContext
{
public MyDBContext() : base("MyCon")
{
Database.SetInitializer<MyDBContext>(new CreateDatabaseIfNotExists<MyDBContext>());
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var entityMethod = typeof(DbModelBuilder).GetMethod("Entity");
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "FullDynamicWepApp.Data.Domins")
.ToList();
foreach (var item in theList)
{
entityMethod.MakeGenericMethod(item)
.Invoke(modelBuilder, new object[] { });
}
base.OnModelCreating(modelBuilder);
}
}
但现在我不知道如何在 DbContext 中编写没有任何 DbSet<> 的 查询 Linq?创建我的 DbContext 实例并使用哪个属性?
MyDBContext Db = new MyDBContext();
Db.What???????
在这种情况下我该如何编写我的CRUD操作?
最佳答案
DbContext.Set<TEntity>
方法将返回 DbSet<TEntity>
对于给定类型,例如:
Db.Set<Entity>().Add(entity);
关于c# - 当里面没有 DbSet<> 时如何使用 DbContext 进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39817703/