小编tri*_*nes的帖子

Custom C#对象是否可以包含与其自身类型相同的属性?

如果我创建了以下Employee对象(简化)...

 public class Employee
    {
        public Employee()
        {       
        }

        public String StaffID { get; set; }
        public String Forename { get; set; }
        public String Surname { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

...在Employee对象中有另一个属性是否可以接受,而Type也是Employee来保存其经理的详细信息(如下所示)?

 public class Employee
    {
        public Employee()
        {       
        }

        public String StaffID { get; set; }
        public String Forename { get; set; }
        public String Surname { get; set; }

        public Employee Manager { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

另外,为Manager属性实例化Employee对象的最佳方法是什么?显然包含在构造函数中会导致无限循环.从 …

c# properties object

10
推荐指数
3
解决办法
6471
查看次数

T-SQL - 跟踪一段时间内的事件

我有一些与之相关的数据ValidFromValidTo日期.简单来说:

MembershipId | ValidFromDate | ValidToDate
==========================================
0001         | 1997-01-01    | 2006-05-09
0002         | 1997-01-01    | 2017-05-12
0003         | 2005-06-02    | 2009-02-07
Run Code Online (Sandbox Code Playgroud)

此表上有一个非聚集索引,其中包含两个日期作为键值.

我也有涵盖了所有日期从时间维度表19002999.

我试图找出我怎么能选择一个范围从日期维度表的日期(假设2016-01-012016-12-31),然后确定对于每一日期,许多成员是如何在该日起生效.

下面的代码完成了工作,但性能不是很好,我想知道是否有人有任何建议可以更好地解决这个问题?

SELECT 
   d.DateKey
  ,(SELECT COUNT(*) FROM Memberships AS m
    WHERE d.DateKey between m.ValidFromDateKey and m.ValidToDateKey
    ) AS MembershipCount

FROM       
   DIM.[Date] AS d

WHERE
   d.CalendarYear = 2016
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的任何建议!

sql t-sql date dimensional-modeling

3
推荐指数
1
解决办法
111
查看次数

T-SQL-将多个XML节点值转换/转置为列

我在表中有一个简单的XML字段,该表在其节点内存储一个或多个值:

<MultiSelect>
  <ItemKey>38</ItemKey>
  <ItemKey>36</ItemKey>
</MultiSelect>
Run Code Online (Sandbox Code Playgroud)

如何以将这些值提取到结果中的列的方式查询此字段?

源数据:

RowKey    Format
-----------------
1         <MultiSelect><ItemKey>40</ItemKey></MultiSelect>
2         <MultiSelect><ItemKey>40</ItemKey><ItemKey>36</ItemKey></MultiSelect>
Run Code Online (Sandbox Code Playgroud)

追求结果:

RowKey   ItemKey
----------------
1        40
2        40
2        36
Run Code Online (Sandbox Code Playgroud)

我已经接近要在下面的查询中使用的位置,但这仅返回XML节点的名称,而不是其中的值:

SELECT 
    [RowKey],
    x.y.value('local-name(.)', 'varchar(max)') AS ItemKey

FROM
[tbl_MyDataTable] AS t
    cross apply t.[Format].nodes('MultiSelect/ItemKey') x(y)
Run Code Online (Sandbox Code Playgroud)

结果:

RowKey   ItemKey
----------------
1       ItemKey
2       ItemKey
2       ItemKey
Run Code Online (Sandbox Code Playgroud)

任何建议都可以收到!

xml sql sql-server xquery

1
推荐指数
1
解决办法
805
查看次数

标签 统计

sql ×2

c# ×1

date ×1

dimensional-modeling ×1

object ×1

properties ×1

sql-server ×1

t-sql ×1

xml ×1

xquery ×1