CSh*_*sco 1 c# entity-framework ajaxcontroltoolkit entity-framework-6 visual-studio-2015
对不起,这个简单的问题。我是新手。我有一个包含多个表的实体模型,我想获取表的列表,然后我想从表中获取列的内容。
例如,我有科目表:生物、化学和物理,每个表都有一个列 className(在其他列中)。我想遍历表格,获取名称,然后获取该列下的内容,因为我需要ToList()它。
我想做这样的事情:
for each (table in myEntityModel)
{
Get tableName from table
Get contents under className from table
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用元数据工作区,并且得到了一个 tableName 列表,但这对我获取每个表的内容并没有太大帮助。我可以查询单个表,但我不知道如何更改表。如果我使用:from r in myEntity.Biology select{...},我将无法更改我所指的实体集。
哦,而且,如果我正在做的事情的上下文有帮助,我正在尝试在 Visual Studios 2015 中的 Ajax Control Toolkit 16.1 的帮助下构建一个手风琴。我使用的是实体框架 6.0。主题名称将是 headercontainer,类列表将作为网格视图添加到手风琴窗格中。我是 C#、Visual Studios、数据库、查询、实体模型以及我正在使用的几乎所有内容的新手,但可以随意使用尽可能多的术语。如果有什么让我感到困惑,我会谷歌它。谢谢!
它效率不高,因为它将整个表加载到内存中,但您可以这样做:
var myEntityModel = new MyEntityModel(); //your context
var dbSets = myEntityModel.GetType().GetProperties().Where(p => p.PropertyType.Name.StartsWith("DbSet")); //get Dbset<T>
foreach (var dbSetProps in dbSets)
{
var dbSet = dbSetProps.GetValue(myEntityModel, null);
var dbSetType = dbSet.GetType().GetGenericArguments().First();
var classNameProp = dbSetType.GetProperty("className");// i did not undestand, you want classes with className property?
if (classNameProp != null)
{
var contents = ((IEnumerable) dbSet).Cast<object>().ToArray();//Get The Contents of table
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |