我正在使用ASP.NET Entity Framework 4.1 MVC 3(C#)
我想通过DbContext中的所有实体进行操作。我需要能够动态地引用我的实体才能制作动态视图。
我读过Lerman的书,两本MVC(2& 3)书籍,msdn,asp.net等等。也许我只是缺少一些东西?
您似乎可能必须使用ObjectContext才能访问实体。如果这是正确的方法,我肯定无法弄清楚如何做到这一点。请帮忙。谢谢。
答案 0 :(得分: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});
}
答案 1 :(得分:0)
我不确定你在问什么。如果要在DbContext中动态引用DbSets,可以使用反射:
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"
{
但说实话,我不知道你在问什么或者你想要什么。我刚看到你还没有答案,所以我想我会给我两分钱。
答案 2 :(得分:0)
使用Entity Sql和对CreateQuery的调用来形成查询。
看看这是否能让你入门。
http://www.codeproject.com/Questions/208209/Problem-with-Entity-SQL?display=Print
ObjectQuery query = ctx.CreateQuery("SELECT P FROM WebStoreEntities.Customers AS P");
我不是100%确定如何获取实体的名称 - 尝试使用OpticalDelusions方式 - 但这可能对您有所帮助。
你必须动态地把所有东西放在一起 - 但是结果类型你可能会遇到问题,但试一试。