Tag: 分层数据

来自DB的分层数据 – 加入或不加入

我试图为这个问题找到一个干净,高效的解决方案,但不知怎的。 琐事: -ASP.Net C#应用程序(.Net 3.5) -MS-SQL Server 2005 这是数据的样子: 类别 – >模板 – >实例 类别可以包含多个模板。 模板可以包含多个实例。 这三个中的每一个都有一个类,还有一个包含大量列的相应数据库表。 我想从数据库中将完整的类加载到C#Category类对象中,包括所有相关的模板和实例对象。 我现在有两个选择: 1) 在所有3个表上进行连接并一次读取所有数据。 好处 :数据库方面更快,一个查询中的所有信息。 缺点 :我传输了大量冗余数据,因为每一行中每个实例都有相同的类别和模板数据。 示例(简化): CategoryID | CategoryName | TemplateID | TemplateName | InstanceID | InstanceName 1 | FirstCategory | 1 | FirstTemplate | 1 | FirstInstance 1 | FirstCategory | 1 | FirstTemplate […]

如何有效地搜索此层次结构?

我有一个如下所示的数据结构: public class Node { public string Code { get; set; } public string Description { get; set; } … public List Children { get; set; } } 在给定指定的Code ,我想编写一个返回特定节点的方法。 通常我会在层次结构中进行递归遍历以找到节点,但我关注性能。 层次结构中将有数千个节点,并且此方法将被多次调用。 如何构建它以使其更快? 我是否可以使用现有的数据结构,可能在保留层次结构的同时对Code执行二进制搜索,而不是自己重新实现某种forms的二进制搜索?

无法将类型’System.Collections.Generic.List ‘隐式转换为’System.Linq.IQueryable ‘

我正在尝试在我的域服务(VS 2010 Silverlight业务应用程序)中创建一个查询,该查询返回作为特定值出现的检查读数的结果,我的数据库设置为: Locations a) Inspections b) InspectionItems c) InspectionReadings a) Areas b) Inspections c) InspectionItems d) InspectionReadings 因此,正如您所看到的,区域和位置下的位置有检查读数。 我有一个名为StatusList的POCO: public class StatusList { [Key] [Editable(false)] public Guid ID { get; set; } public string LocationName { get; set; } public DateTime LastInspectionDate { get; set; } public string Status { get; set; } } […]

(ID / ParentID)列表到分层列表

MyClass包含ID ParentID和List as Children 我有这样的MyClass列表 ID ParentID 1 0 2 7 3 1 4 5 5 1 6 2 7 1 8 6 9 0 10 9 输出(分层列表)为List 1 __ 3 |__ 5__ 4 |__ 7__ 2__ 6__ 8 |__ 11 9 __10 在linq中实现这一目标的最简单方法是什么? PS: ParentID未排序 编辑: 我的尝试: class MyClass { public int ID; public […]

在LINQ中表达递归

我正在为一个分层数据源编写一个LINQ提供程序。 我发现通过编写显示我想如何使用它的示例来设计我的API最简单,然后编写代码以支持这些用例。 我遇到麻烦的一件事是在LINQ语句中表达“深度查询”或递归的简单/可重用/优雅方式。 换句话说,区分以下内容的最佳方法是: from item in immediate-descendants-of-current-node where … select item 与: from item in all-descendants-of-current-node where … select item ( 编辑:请注意上面这些例子都不一定反映我想要的查询结构。我感兴趣的是表达递归/深度的任何好方法 ) 请注意我不是问如何实现这样的提供程序,或者如何以允许递归的方式编写我的IQueryable或IEnumerable。 我是从一个人编写LINQ查询并利用我的提供者的角度问的 – 他们表达是否想要递归的直观方式是什么? 数据结构类似于典型的文件系统:文件夹可以包含子文件夹的集合,文件夹也可以包含项集合。 所以myFolder.Folders表示myFolder的直接子节点的所有文件夹,myFolder.Items包含myFolder中的所有项目。 这是网站层次结构的基本示例,非常类似于包含文件夹和页面的文件系统: (F)Products (F)Light Trucks (F)Z150 (I)Pictures (I)Specs (I)Reviews (F)Z250 (I)Pictures (I)Specs (I)Reviews (F)Z350 (I)Pictures (I)Specs (I)Reviews (I)Splash Page (F)Heavy Trucks (F)Consumer Vehicles (I)Overview 如果我写: from […]