1
我使用的是實體框架代碼 - 首先是,這是我的DbContext。如你所見,DbSet <>屬性和所有這些將從我提供的模型類提供C#CodeDOM
。我通過使用Code-First動態創建我的表。如何在沒有DbSet <>裏面使用DbContext,以便查詢?
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);
}
}
,但現在我不知道我怎麼能寫我的查詢的LINQ沒有任何DbSet <>我的DbContext裏面?使我的DbContext的實例,並使用哪些屬性?
MyDBContext Db = new MyDBContext();
Db.What???????
我怎麼能寫我的CRUD操作 S IN這些情況?
查爾斯·馬傑的答案是正確的,如果你不想去的根本ObjectContext的或其他的DbContext的唯一途徑。只是想提及你應該總是(在可能的情況下)使用block來包裝你的DbContext,這樣它們才能被正確處置。 – DevilSuichiro
您當然可以使用Charles的答案,但是爲什麼不只是將DbSet <>屬性添加到MyDBContext類中,至少對於您打算直接查詢的實體類型? – PMV