gpt4 book ai didi

entity-framework - Entity Framework - 获取表列表

转载 作者:行者123 更新时间:2023-12-03 12:09:05 24 4
gpt4 key购买 nike

就是这样。这很简单。我有一个 edmx 并且希望能够动态地查询它以获取表,并且(希望)动态地针对该表进行构建。那可能吗?

=========

更新:

我在上下文中包含了所有数据库表,但没有 View 或 SP。我们有很多类型信息(带有 id)的表。因此,例如,颜色或文件类型或协议(protocol)类型。我希望能够对可能包含类型信息(文件、文件类型)的表进行类型(文件)查询,并用 id 返回它。

因此,我可能会寻找...业务单位(或颜色或文件),代码将开始搜索业务单位(或颜色或文件)和业务单位类型(或颜色类型或文件类型)的上下文。如果找到任何一个,它将查询它并返回所有行,以便我可以查看它是否包含类型信息(稍后我将对其进行细化以仅返回 ID 和描述、缩写或名称字段以及限制行等)并能够找到特定任何东西的关联 ID。

最佳答案

此示例代码来自帖子 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);
}
}

关于entity-framework - Entity Framework - 获取表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com