感谢您的光临。

我需要查询我的实体类以获得所有实体(表)的列表,并且对于每个实体/表,我需要所有外键(导航属性?)的列表以及记录的数量存储在该实体的相应数据表中。

到目前为止,我已经找到了如何获取所有实体的列表的方法,但是对于如何获取外键和记录每个实体的计数我还是很困惑。 任何帮助表示赞赏。

到目前为止,这是我的代码:

 public static void GetAllEntities(SomeEntityContext db)
        {
            int trick = db.Some_Table.Count(); //The code below won't work without running some initial call against the entity context.  Not sure why.

            //Get a list of entities / tables
            IEnumerable<EntitySet> tables = db.MetadataWorkspace.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;

                //Print out some data
                System.Diagnostics.Debug.WriteLine(tableName);

                //ALSO NEED THE FOLLOWING:
                //--Count of records in table
                //--List of foreign keys for table

            }
        }

===============>>#1 票数:0

尝试按如下方式创建DbContext扩展:例如http://weblogs.asp.net/ricardoperes/entity-framework-metadata

这些方法应允许您从TableNavigationColumns等确定FK。

  • 的getTables
  • getTableName时
  • 一对多
  • OneToOne
  • 多对一
  • 多对多
  • GetIdProperties
  • GetNavigationProperties
  • GetTableKeyColumns
  • GetTableColumns
  • GetTableNavigationColumns

  ask by Matt Cashatt translate from so

未解决问题?本站智能推荐:

1回复

需要有关ADO.NET实体框架UpdateException的帮助

我的数据库中有一个Contact表和一个Phone表,电话表中有“ ContactId”列,其中的键将电话引用到该联系人。 在服务器的关键选项中,我将其删除选项设置为“ Cascade”。 现在,当我尝试使用上下文删除联系人时: 上面的语句抛出一个UpdateExceptio
1回复

ADO.NET实体数据模型-重复项

我怎样才能像SQL中那样向列添加Unqiue索引,以免该列中出现重复项?
1回复

ADO.net,检查ObjectContext是否可写

我在asp.net mvc项目中有一个嵌入式数据库。 如果尝试写入文件,有时会遇到写入失败的异常,因为SQL Server无法写入文件。 如何在不实际写入数据库内容的情况下检查ObjectContext是否可写?
1回复

是否可以在ADO.NET实体框架中不映射关联

我正在一个项目中,该项目使用ADO.NET实体框架作为将数据输入和输出数据库的ORM框架。 这一切都很好,但是我不想映射一个关联。 至少我不希望开发人员使用他们之间的关联从Product导航到OrderItem。 在我知道这是否可行以及如何将其建模到域模型之前,有人尝试过这种情况吗?
2回复

ADO.NET实体框架和WCF服务

我有一个简单的ADO.NET实体框架4.0模型(edmx),该模型定义具有外键关系的数据库表。 如何将这些实体向下发送到Windows Phone 7客户端? 我已经使用以下方法创建了WCF服务(使用WShttpbinding)... 我还创建了一个简单的控制台应用程序来使用此服
6回复

我应该为每个表创建一个ADO.NET实体数据模型,还是为整个数据库创建一个?

你应该为每个表使用一个ADO.NET实体数据模型吗? 或者一个用于整个数据库,其中关系也被路由,等等......
1回复

Ado.net数据实体模型EF 6.x在向导中冻结

我一直在将ADO.NET实体数据模型Ef 6.x数据库与其他MS SQL Server数据库一起使用,并且一直可以正常工作,直到获得具有大量表的生产数据库架构的本地生产副本为止。 我没有做任何花哨的事情,而是尝试使用标准向导添加DbContext。 由于某些原因,它花了很长时间,并且从未成功
8回复

多个项目的ADO.NET实体连接字符串

我正在使用多层项目,其中DataModel承载ADo.NET实体模型,DataAccess层执行验证。 但每次我都会收到这样的错误 指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效。 我尝试过连接字符串 <add name
1回复

ADO.NET模型未更新存储过程更改

我在项目中添加了ADO.NET实体框架模型。 当我在存储过程中进行更改时,它并没有反映出ADO.NET实体模型中的更改。 我试图从模型中删除旧的存储过程并再次更新模型,但是ADO.NET模型没有更新该更改。 有人可以帮我解决这个问题吗? 提前致谢
1回复

从数据库生成的ADO.NET数据模型遗漏了我的一张表

我试图将ADO.NET添加到我的asp.net项目中。 它会正确生成所有内容,但会遗漏我的一张桌子, 我觉得这可能是由于命名问题或其他原因引起的, 它添加了我的一个名为Users的表,但后来被排除的表称为'UserCompany how ever I have tried tu