小编Nib*_*Pig的帖子

了解SQL中的ROLLUP

我已经发现CUBE只是产生了所有的排列,但是我在使用ROLLUP时遇到了麻烦.似乎没有任何好的在线资源或我正在阅读的书中为那些像我这样挣扎的人解释SQL.

我的书说ROLLUP是CUBE运算符的一个特例,它排除了所有不遵循结果中层次结构的情况.

我不完全确定它意味着什么,但是在我制作的桌子上运行它会产生一些有用的结果.

我在google上的另一个页面做了一个表,如下所示:

Type        Store       Number
Dog     Miami       12
Cat     Miami       18
Turtle   Tampa       4
Dog     Tampa       14
Cat     Naples      9
Dog     Naples      5
Turtle   Naples      1
Run Code Online (Sandbox Code Playgroud)

然后这是我做的查询:

select store,[type], SUM(number) as Number from pets

group by store, [type]

with rollup
Run Code Online (Sandbox Code Playgroud)

这显示了每个商店中每种宠物的数量,以及每家商店的宠物总数,这有点酷.如果我想看看基于宠物的查询,我发现我必须按顺序切换组,所以类型首先出现.

汇总是基于第一个group by子句?

另一个问题是,我读到你使用ROLLUP而不是CUBE,当你有一年和一个月的列来阻止它在多年内聚合同一个月.我想我明白这意味着什么,但任何人都可以澄清一下吗?你怎么设置它?

您是否可以使用ROLLUP排除其他列组合?我上面的表非常简单,查询显示"按商店划分的宠物",但是如果有其他列,您可以在结果中包含/排除它们吗?

sql

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

任何人都能解释这个有趣的C#问题吗?

我之前遇到了一个奇怪的问题,我在一个新的控制台应用程序中复制了这个问题.我想知道,任何人都能解释为什么会这样吗?

    static void Main(string[] args)
    {
        DoSomething(0);

        Console.Read();
    }

    public static void DoSomething(int? value)
    {
        Console.WriteLine("Do Something int? called");
    }

    public static void DoSomething(MyEnum value)
    {
        Console.WriteLine("Do Something MyEnum called");
    }

    public static enum MyEnum : int
    {
        test

    }
}
Run Code Online (Sandbox Code Playgroud)

您在DoSomething行上收到错误:

错误1以下方法或属性之间的调用不明确:'DoSomething(int?)'和'DoSomething(MyEnum)'

但是,如果将零更改为任何其他数字,则不存在此类问题.

c#

9
推荐指数
2
解决办法
299
查看次数

使用Jquery将项插入到给定索引处的无序列表中

我有:

<ul>

<li>Cthulhu</li>
<li>Godzilla</li>
<li>King Kong</li>

</ul>
Run Code Online (Sandbox Code Playgroud)

我想<li>Pink Panther</li>在哥斯拉之后插入(索引2).我怎样才能做到这一点?

html jquery

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

C#HttpClient,获取错误无法添加值,因为标题'content-type'不支持多个值

HttpClient serviceClient = new HttpClient();
serviceClient.DefaultRequestHeaders.Add("accept", "Application/JSON");

HttpContent content = new StringContent(text);
content.Headers.Add("content-type", "text/html");

var response = await serviceClient.PostAsync(new Uri(_serviceUrl), content);
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我想做一个POST,并将内容类型设置为text/html,但是当我这样做时,我得到了上述错误.

我可以设置它看起来的内容类型,content.Headers.ContentType但如果我这样做,我不知道如何指定"text/html".有人可以帮忙吗?

c#

9
推荐指数
3
解决办法
9409
查看次数

按名称访问DbSet的属性

我有一个 DbSet<T>

我想按名称访问其中一个属性.

这可能吗?

我基本上是在创建一个泛型函数,所以对于我所拥有的任何DbSet,我可以指定一个列并让它列出该列的值.

您可以通过DbSet上下文从上下文中获取自己,context.Set(T)但我不确定这些字段.

c# entity-framework

9
推荐指数
2
解决办法
6254
查看次数

为什么我不能在接口上调用ToString()?

我在示例控制台应用程序中重新创建了这个问题,所以我很想知道发生了什么.

最初的问题是在我的代码中,我有一个被调用的类ICat,这个类是用C#编写的

public interface ICat
{
  string ToString(CatColour colour);
}
Run Code Online (Sandbox Code Playgroud)

在同一个程序集中,在C#中有一个实现:

public class MagicCat : ICat
{
        public string ToString(CatColour colour)
        {
            return $"I am a {colour} cat";
        }
}
Run Code Online (Sandbox Code Playgroud)

这编译没有任何问题.

在另一个用VB.NET编写的程序集中,我有这样的代码:

Dim myCat As ICat = GetCat()
Dim result = myCat.ToString() ' Error on this line
Run Code Online (Sandbox Code Playgroud)

这给出了编译错误 Argument not specified for parameter 'colour' of 'Function ToString(format As AddressFormat) As String'.

我尝试在C#应用程序中重新创建此代码,使用以下代码:

public class Cat : IAnimal
{
    public string ToString(CatColour colour)
    {
        return $"I am a {colour} …
Run Code Online (Sandbox Code Playgroud)

c# vb.net

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

如何在保持启动的同时让 serilog 丰富器与依赖注入一起工作?

这里有一个答案:如何将依赖项传递给 Serilog Enricher?这解释了您可以传入一个实例。

但是要做到这一点,我需要在我的依赖注入代码运行后移动我的记录器设置(在startup.cs

这意味着不会记录启动错误,因为记录器还没有准备好。

有没有办法以某种方式配置 serilog 以在我的Main()方法中运行,但也可以使用 DI 项目丰富数据?尽管 DI 项是单例,但它还有更多的依赖项(主要是数据库连接)。

我已经用谷歌搜索了这个并阅读了一些关于向上下文添加内容的内容,但我一直无法找到一个我可以适应的完整工作示例。

我发现的大多数示例都涉及将代码放入控制器以附加信息,但我希望这对每个日志条目全局可用。

我的主要开始于:

Log.Logger = new LoggerConfiguration()
    .Enrich.FromLogContext()
    .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUri))
    {
        AutoRegisterTemplate = true,
    })
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

在进入 .NET Core MVC 代码之前

CreateWebHostBuilder(args).Build().Run();

我的 DI 对象基本上是一个“UserData”类,其中包含用户名、companyid 等。这些属性在访问时会访问数据库以获取基于某些当前身份的值(尚未实现)。它被我的 DI 注册为单身人士。

dependency-injection serilog asp.net-core-mvc

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

WCF是否始终使用SOAP通过绑定发送信息?

据我所知,您可以从一系列绑定中进行选择,例如TCP,HTTP,HTTPS等.

我是否认为它始终使用SOAP通过此连接发送数据?我正在观看WCF指南,它正在讨论如何将异常序列化为SOAP并发送到客户端.我原以为并非所有绑定都会使用SOAP来发送数据,所以我对它的工作方式有点困惑.

虽然我理解WCF的基本原理,如何在客户端上设置服务和使用代理,但它似乎没有准确解释数据如何打包发送.

也许答案很明显,它只是使用XML/SOAP,但我很想知道!

xml wcf soap wcf-binding

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

Linq to SQL lambda join

遇到这个问题,我尝试了几个例子,但我只是没有得到它.使用非lambda方式非常有意义,但如何使用lambda表达式进行连接?

var myCats = GetAllCats();
var myHouses = GetAllHouses();

// pseudosql:  select * from a inner join b on a.id = b.id
Run Code Online (Sandbox Code Playgroud)

我试过这个:

var fullData = myCats.Join(myHouses, a => a.id, b => b.id, (a, b) => a);
Run Code Online (Sandbox Code Playgroud)

我通过查看SO上的其他示例得到了什么,但是fullData是类型IEnumerable<Cat>所以我不能从Houses中提取任何属性.

c# linq-to-sql

8
推荐指数
4
解决办法
4万
查看次数

在Java中,我应该创建一个新的包,文件夹还是源文件夹?

关于SO有几个问题,但是我对Java开发完全不熟悉,我不知道正确的方法.

我有一个C#解决方案,包含两个项目(我的应用程序和一个单元测试项目),在应用程序中,大多数东西都放在文件夹中,例如.接口,异常等

我试图在Java/Eclipse中重新创建它,但我不知道如何.我最终得到了很多包,听起来真的很糟糕.我也尝试添加一个源文件夹,但最终是在包外面.

有人能指出我正确的方向吗?

也就是说,我应该使用哪些来表示我的单元测试项目/单元测试集,以及仅用于组织内容的子文件夹.

编辑:它还说不建议使用默认包.我该怎么办?

编辑2:这是它的样子.这看起来有点模糊吗?我原来的C#解决方案在右边.

我的布局

java eclipse

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