小编Meh*_*ari的帖子

复合主键是否应该在SQL Server中进行群集?

考虑这个示例表(假设SQL Server 2005):

create table product_bill_of_materials
(
    parent_product_id int not null,
    child_product_id int not null,
    quantity int not null
)
Run Code Online (Sandbox Code Playgroud)

我正在考虑一个包含两个product_id列的复合主键(我肯定想要一个唯一的约束)而不是一个单独的唯一ID列.问题是,从性能的角度来看,主键是否应该聚类?

我是否还应该在每个ID列上创建索引,以便更快地查找外键?我相信这个表在读取上会比写入更多.

sql database database-design primary-key

10
推荐指数
2
解决办法
2万
查看次数

如何在日期时间的日期部分创建唯一约束?

我正在编写一个非常简单的博客引擎供自己使用(因为我遇到的每个博客引擎都太复杂了).我希望能够通过其URL来唯一地标识每个帖子/2009/03/05/my-blog-post-slug.要在数据层中完成它,我想创建一个复合唯一约束,(Date, Slug)其中Date只有组成日期的日期部分(忽略一天中的时间).我自己有一些想法(比如另一个专栏,可能只是计算,只保留日期部分),但我来了解SO以解决这个问题的最佳实践.

我怀疑SQL Server版本在这里很重要,但是对于记录,我是2008 Express(我很欣赏更便携的解决方案).

表模式:

create table Entries (
    Identifier int not null identity,
    CompositionDate datetime not null default getdate(),
    Slug varchar(128) not null default '',
    Title nvarchar(max) not null default '',
    ShortBody nvarchar(max) not null default '',
    Body nvarchar(max) not null default '',
    FeedbackState tinyint not null default 0,
    constraint pk_Entries primary key(Identifier),

    constraint uk_Entries unique (Date, Slug) -- the subject of the question
)
Run Code Online (Sandbox Code Playgroud)

选择解决方案

我认为marc的解决方案更合适,考虑到这个问题是关于2008年的.但是,我将使用整数方法(但不是INSERTs,因为它不能确保数据的完整性;我将使用预先计算的整数列)因为我认为从客户端(在查询中)处理整数事物更容易.

感谢你们.

create table …
Run Code Online (Sandbox Code Playgroud)

sql sql-server datetime unique-constraint sql-server-2008

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

.NET集合和大对象堆(LOH)

具有大量项目的.NET集合是否易于存储在LOH中?

我特别好奇List和Dictionary.在我的代码中,我将大量(40k +)相对较小的对象(比如1k)存储在临时列表和Dictionarys中进行处理.这些收藏中的物品数量是否会增加被放置在LOH上的可能性?

对于列表,假设List实现为双向链表,那么元素的数量不应该增加实际List对象的大小,但我想知道肯定.

谢谢

.net collections clr memory-management

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

C#和接口 - 显式与隐式

在C#中,如果一个类具有接口的所有正确方法/签名,但没有明确地实现它,如:

class foo : IDoo {}
Run Code Online (Sandbox Code Playgroud)

该类仍然可以作为该接口进行转换吗?

.net c# casting duck-typing interface

10
推荐指数
2
解决办法
906
查看次数

C#StructLayout.Explicit问题

我试图理解为什么下面的第二个例子没有问题,但第一个例子给了我下面的例外.在我看来,两个例子都应该基于描述给出例外.任何人都可以开导我吗?

未处理的异常:System.TypeLoadException:无法从程序集'StructTest,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'加载类型'StructTest.OuterType',因为它包含偏移0处的对象字段,该字段未正确对齐或重叠由非对象字段.
在StructTest.Program.Main(String [] args)按任意键继续...

例1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace StructTest
{
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    struct InnerType
    {
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
        char[] buffer;
    }

    [StructLayout(LayoutKind.Explicit)]
    struct OuterType
    {
        [FieldOffset(0)]
        int someValue;

        [FieldOffset(0)]
        InnerType someOtherValue;
    }

    class Program
    {
        static void Main(string[] args)
        {
            OuterType t = new OuterType();
            System.Console.WriteLine(t);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

例2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;

namespace StructTest …
Run Code Online (Sandbox Code Playgroud)

.net c# clr structlayout

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

Visual Studio - 为什么.ASPX文件加载的时间比.ASPX.CS文件要长得多?

这可能是一个愚蠢的问题,但这是一个让我经常烦恼的事情,所以我猜这里没有任何伤害.

当我打开.ASPX文件时,Visual Studio究竟做了什么,并且比我刚刚打开文件后面的代码(.ASPX.CS)需要4-5秒的时间.

我已经注意到VS 2003,2005和2008以及新建的机器上发生了这种情况,所以这不是我的开发机器太慢的问题.

它似乎只发生在特定会话中第一次打开任何.ASPX文件时.是否有一些处理正在进行,我可以禁用以摆脱这种延迟?

干杯

asp.net designer editor visual-studio

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

ASP.NET MVC - 有没有办法模拟ViewState?

我有以下情况......在某个视图中,用户必须选择初始小时,最后一小时和工作日.但是,我无法将此信息保存到DB中,因为我需要保存整个页面,我需要主表的主键,但这不是重点.

因此,虽然我没有将这些数据保存到DB,但我正在保存到Session.我被告知保存到cookie,但似乎cookie有大小限制.所以,我正在保存到一个会话.

Buuuut,我还被告知我可以将这些信息(小时和工作日)保存到用户页面,模拟ASP.NET ViewState ...

有谁知道如何做到这一点??有谁知道如何使用cookie或Session暂时保存这些数据?

谢谢!!

asp.net viewstate asp.net-mvc session state-management

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

访问ASP.NET MVC应用程序中的控制器/操作列表

我们知道在幕后,ASP.NET MVC框架将使用反射来确定哪些控制器/操作可以执行,基于哪些类派生自System.Web.Mvc.Controller哪些类,哪些方法返回一个ActionResult对象.

对我的问题 - 是否可以从我的MVC应用程序中访问此控制器/操作列表?

(我可以通过在当前程序集上使用反射来自己完成,但如果列表已经由ASP.NET MVC构建,我宁愿重新使用这些工作,而不是自己重新发明轮子.)

reflection asp.net-mvc action controller

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

为什么FormatException不从ArgumentException继承?

有没有已知的原因FormatException不继承ArgumentException?无效格式似乎是一个非常具体的参数无效的情况,类似于ArgumentOutOfRangeException.

该类MSDN文章指出:

当方法调用中的参数格式与相应的形式参数类型的格式不匹配时,抛出FormatException.例如,如果方法指定一个String由两个带嵌入句点的数字组成的参数,则将只包含两位数的相应字符串参数传递给该方法将导致抛出FormatException.

听起来像是ArgumentException我的一个或派生课程的场景.

所有这些意味着您无法FormatException在较大的ArgumentException异常系列下处理,也无法识别导致异常的参数.

这个看似不合时宜的例外是否有任何理由存在?

.net exception argumentexception formatexception

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

转换整数数组以在SQL"IN"子句中使用

当然有一个框架方法给出一个整数数组,字符串等将它们转换成一个可以在SQL" IN"子句中使用的列表?

例如

int[] values = {1,2,3};
Run Code Online (Sandbox Code Playgroud)

会去的

"(1,2,3)"
Run Code Online (Sandbox Code Playgroud)

c# sql arrays

8
推荐指数
3
解决办法
5709
查看次数