gpt4 book ai didi

entity-framework-4 - 如何在 EF MetadataWorkspace 中区分 View 和表?

转载 作者:行者123 更新时间:2023-12-01 04:14:44 26 4
gpt4 key购买 nike

我正在尝试使用 MetadataWorkspace 处理 Entity Framework 数据模型的元数据信息。我知道如何提取所有表,但以下代码将从存储模型中返回所有 View 和所有表。

using ( NorthwindEntities dbContext = new NorthwindEntities() )
{
MetadataWorkspace workspace = dbContext.MetadataWorkspace;
string temp = ( dbContext.Categories as ObjectQuery ).ToTraceString();
IEnumerable<EntityType> tables = workspace.GetItems<EntityType>( DataSpace.SSpace );
}

当我查看 edmx 文件时,我可以看到有一个名为 store:Type 的属性,它描述了哪个 EntitySet 是表,哪个是 View 。 EntityType 对象没有提供这样的属性:
<EntitySet Name="Invoices" EntityType="NorthwindModel.Store.Invoices" store:Type="Views">

所以我的问题是:有没有办法通过仅使用 MetadataWorkspace 来识别哪个 EntitySet 是表,哪个是 View (我的意思是不处理 XML ;))

提前致谢

最佳答案

在深入挖掘 EF MetadataWorkspace 之后,我相信我找到了一个解决方案:

using ( AdventureWorksEntities dbContext = new AdventureWorksEntities() )
{
MetadataWorkspace mw = dbContext.MetadataWorkspace;
dbContext.Locations.ToTraceString();
EntityContainer entityContainer = mw.GetItems<EntityContainer>( DataSpace.SSpace ).Single();
EntitySet entitySet = entityContainer.GetEntitySetByName( "Location", true );
string type = entitySet.MetadataProperties[ "http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator:Type" ].Value.ToString();
}

老实说,使用 Entity Framework 元数据真的很难。至少他们应该做强类型属性。

关于entity-framework-4 - 如何在 EF MetadataWorkspace 中区分 View 和表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4397023/

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