就是这样。这很简单。我有一个 edmx,希望能够动态查询它的表,并(希望如此)针对该表动态构建。那可能吗?
=========
UPDATE:
我在上下文中包含了所有数据库表,但没有视图或 SP。我们有很多输入信息的表(带有 ID)。例如,颜色或文件类型或协议类型。我希望能够对可能保存类型信息(File、FileType)的表进行类型(文件)查询,并使用 id 返回它。
因此,我可能会查找... Business Unit(或颜色或文件),代码将开始并搜索 BusinessUnit(或颜色或文件)和 BusinessUnitType(或 ColorType 或 FileType)的上下文。如果它找到其中之一,它将查询它并返回所有行,以便我可以查看它是否包含类型信息(稍后我将对其进行细化,以仅返回 ID 和描述、缩写或名称字段以及限制行等)并能够找到特定内容的关联 ID。
此示例代码来自帖子我的 EF 模型中有哪些表?我的数据库呢? http://romiller.com/2012/04/20/what-tables-are-in-my-ef-model-and-my-database/
using (var dbContext = new YourDbContext())
{
var metadata = ((IObjectContextAdapter)dbContext).ObjectContext.MetadataWorkspace;
var tables = metadata.GetItemCollection(DataSpace.SSpace)
.GetItems<EntityContainer>()
.Single()
.BaseEntitySets
.OfType<EntitySet>()
.Where(s => !s.MetadataProperties.Contains("Type")
|| s.MetadataProperties["Type"].ToString() == "Tables");
foreach (var table in tables)
{
var tableName = table.MetadataProperties.Contains("Table")
&& table.MetadataProperties["Table"].Value != null
? table.MetadataProperties["Table"].Value.ToString()
: table.Name;
var tableSchema = table.MetadataProperties["Schema"].Value.ToString();
Console.WriteLine(tableSchema + "." + tableName);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)