4

我正在使用 ASP.NET 实体框架 4.1 MVC 3 (C#)

我想遍历我的 DbContext 中的所有实体。我需要能够动态引用我的实体才能制作动态视图。

我读过 Lerman 的书、两本 MVC(2 和 3)书、msdn、asp.net 等。也许我只是遗漏了一些东西?

似乎您可能必须使用 ObjectContext 才能访问实体。如果这是正确的方法,我肯定不知道该怎么做。请帮忙。谢谢你。

4

3 回答 3

3

你也可以这样做(例如):

foreach (var dbItem in dbContext.Items)
{
    //do what you want inside the loop with the dbItem
    sList.Add(new SelectListItem() {Text = dbItem.ItemName, Value = dbItem.ItemTag});
}
于 2011-10-16T22:12:53.677 回答
1

我不确定你在问什么。如果要动态引用 DbContext 内部的 DbSet,可以使用反射:

DatabaseContext context = new DatabaseContext();
var contextObject = context as Object;
var contextType = contextObject.GetType();
var properties = contextType.GetProperties();
String result = String.Empty;
foreach (var property in properties)
{
  result += property.Name + "\n"
{

但老实说,我不知道你在问什么或你想要什么。我刚刚看到你还没有答案,所以我想我会给我的两分钱。

于 2011-06-13T20:22:24.923 回答
0

使用 Entity Sql 和对 CreateQuery 的调用形成您的查询。

看看这是否能让你开始。

http://www.codeproject.com/Questions/208209/Problem-with-Entity-SQL?display=Print

ObjectQuery 查询 = ctx.CreateQuery("SELECT P FROM WebStoreEntities.Customers AS P");

我不是 100% 确定如何获取实体的名称 - 尝试 OpticalDelusions 方式 - 但是一旦你拥有它们,这可能会有所帮助。

您必须动态地将所有内容放在一起 - 但是生成的类型可能会遇到问题,但请尝试一下。

于 2011-06-14T01:48:10.523 回答