Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何在EF4.1中通过dbcontext实体进行访问?_Entity Framework_Asp.net Mvc 3_Objectcontext_Objectstatemanager_Dbcontext - Fatal编程技术网

Entity framework 如何在EF4.1中通过dbcontext实体进行访问?

Entity framework 如何在EF4.1中通过dbcontext实体进行访问?,entity-framework,asp.net-mvc-3,objectcontext,objectstatemanager,dbcontext,Entity Framework,Asp.net Mvc 3,Objectcontext,Objectstatemanager,Dbcontext,我正在使用ASP.NET实体框架4.1 MVC 3 C 我想在DbContext中遍历所有实体。为了创建动态视图,我需要能够动态引用我的实体 我读过勒曼的书,两本MVC2&3的书,msdn,asp.net等等。也许我只是错过了什么 看起来您可能必须使用ObjectContext才能访问实体。如果这是正确的方法,我肯定不知道怎么做。请帮忙。谢谢。我不太清楚你在问什么。如果要在DbContext中动态引用数据库集,可以使用反射: DatabaseContext context = new Datab

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

我想在DbContext中遍历所有实体。为了创建动态视图,我需要能够动态引用我的实体

我读过勒曼的书,两本MVC2&3的书,msdn,asp.net等等。也许我只是错过了什么


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

我不太清楚你在问什么。如果要在DbContext中动态引用数据库集,可以使用反射:

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"
{

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

使用实体Sql和对CreateQuery的调用形成你的查询

看看这是否能让你开始

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


您必须动态地将所有内容组合在一起,但是生成的类型您可能在转换时遇到问题,但请尝试一下

您也可以这样做,例如:

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});
}

嗨,谢谢。看起来您已经在发布的代码段中选择了特定的实体。我希望能够在一个实体集合中循环,并为集合中的每个实体生成html.displayfor/editorfor帮助程序。我在上面提到过,您可以尝试使用OpticalDelusions方法获取实体名称,并结合此方法进行动态查询。由于返回的对象的类型,这最终可能对您有效,也可能无效。。。所以我必须问。。。为什么要这样做,而不是创建一个包含数据库中所有模型类型的viewmodel?我还不明白。viewmodel能解决这个问题吗?我能有嵌套的局部视图和复杂的模型绑定吗?谢谢。这确实让我得到了字符串形式的名称,但当我执行Html.DisplayFor时,它会显示一堆不相关的属性,因为它们已被转换为属性,我猜?如果有人能告诉我如何手动将特定实体添加到集合中,这样我就可以在cshtml视图中动态使用它们,这将非常有用。对不起,我还是C和对象编程的初学者。你应该发布一些你拥有的代码,我不太理解你拥有的,所以我很难推断你需要什么。我想做一些类似的事情:@foreach entity在我的上下文中//地址,电话号码,等等{@RenderPartial将实体名称作为部分视图名称的字符串,实体本身作为部分视图的对象模型}然后在部分视图中可能是:@foreach entity是此模型中的导航属性/entity{Html.EditorForthe related nav prop entity}这看起来很简单。但我是一个完全的初学者,所以也许我问的方式不合理。朱莉·勒曼在她的EF书中谈到了使用ObjectStateManager。但我不知道如何使用它。
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});
}