小编Pau*_*ies的帖子

在大型表上增加VARCHAR列的大小时会出现问题吗?

我正在使用SQL Server 2008,我需要在一个大约500k行的表上创建一个更大的VARCHAR字段,从(200到1200).我需要知道的是,如果有任何问题我没有考虑过.

我将使用此TSQL语句:

ALTER TABLE MyTable
ALTER COLUMN [MyColumn] VARCHAR(1200)
Run Code Online (Sandbox Code Playgroud)

我已经在数据的副本上试过了,这个陈述没有我能看到的不良影响.

这样做有什么可能的问题我可能没有考虑过吗?

顺便说一下,该列未编入索引.

sql-server varchar sql-server-2008 alter-column

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

组合超过继承 - 额外属性在哪里?

从示例HR系统中获取以下代码.用户能够记录缺席并且可以是各种类型,包括假日和疾病.这将是一个ORM的域模型,如NHibernate.

public class Absence
{
    public long Id {get;set;}
    public Employee Employee {get;set;}
    public DateTime StartDate {get;set;}        
    public DateTime EndDate {get;set;}

    public virtual void DoSomething()
    { ... }
}

public class Holiday : Absence
{ 
    public string Location {get;set;}

    public override void DoSomething()
    { ... }
}

public class Sickness : Absence
{
    public bool DoctorsNoteProvided {get;set;}

    public override void DoSomething()
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

这是一个例子 - 请不要质疑为什么需要位置,假设它是一个规范.

用户想要改变类型 - 他认为员工病了,但后来记得这是假期.同样,您可能认为这是一个糟糕的设计,但将其视为一个要求 - 这代表了一个问题,这个问题已经出现过很多次了.

问题是您无法将对象的类型从"疾病"更改为"缺勤".一般来说,建议是赞成组合而不是继承(Gang of Four)并且这样做:

public class Absence
{ …
Run Code Online (Sandbox Code Playgroud)

architecture nhibernate design-patterns domain-driven-design

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

在NHibernate中映射装饰器模式

继这个问题:

组合超过继承 - 额外属性在哪里?

接受的答案和类似答案很好地回答了这个问题.但要进一步说明,如果销售部门和生产部门希望记录有关疾病和假期缺勤的不同信息,该怎么办?这可能是一个解决方案:

public class Holiday : Absence
{
    //Extra fields go here.
}

public class Sickness : Absence
{
    //Extra fields go here.
}

public class SalesHoliday : Holiday
{
    //Extra fields go here.
}

public class SalesSickness : Sickness
{
    //Extra fields go here.
}

public class ProductionHoliday : Sickness
{
    //Extra fields go here.
}

public class ProductionSickness : Sickness
{
    //Extra fields go here.
}
Run Code Online (Sandbox Code Playgroud)

显然,这是阶级爆炸的开始,只会变得更糟,因此应该避免.

一种可能的解决方案是使用装饰器模式(Gang of Four).这将是理想的,但在这个假设的例子中,持久性是使用NHibernate.我已经到处寻找一个如何在NHibernate中映射Decorator模式而没有找到任何东西的例子.我的实验有一点,利用了子类映射,连接子类映射,并集子类映射,鉴别符,隐式多态和多对映射的各种组合,但到目前为止还没有令人满意的结果.有没有人破解过这个?Employee实体将拥有任何类型的缺席集合,因此需要多态行为.

architecture nhibernate design-patterns domain-driven-design decorator

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

分布式领域驱动设计资源

我对开发DDD应用程序非常有信心,但是一个继续引起我问题的领域是两个应用程序相互集成.我正在努力寻找关于这个主题的任何有用的书籍或资源.像EAI模式这样的书籍深入探讨了消息传递模式和消息构建,但并没有真正解释如何构建利用这些模式的系统.

我搜索过高和低,我很确定没有示例应用程序可以说明如何集成两个系统.我理解异步消息传递的概念,但再次找不到如何应用它的好例子.

SOA上的资源似乎不重复相同的概念,而没有演示如何实现它们,而且往往更关心的是销售我的产品.

以下是我正在努力回答的问题:

  1. 每个应用程序是否应该拥有自己的数据副本?例如,组织中的每个应用程序是否都有自己的客户端列表,并在收到消息后更新?

  2. 在DDD堆栈中的什么时候传递消息?它们是域事件的结果吗?

  3. 我可以组合异步消息传递和WCF,还是我必须选择?我是否将WCF用于发布/订阅的请求/响应和消息传递?

  4. 一个DDD应用程序如何使用另一个应用程序的服务?一个DDD应用程序是应该通过其应用程序服务查询另一个系统的数据,还是应该已经拥有自己的数据本地副本,如第1点所述?

  5. 显然我不能跨两个系统进行交易.我该如何避免这种情况?

如果我听起来很困惑,那是因为我.我不是在寻找上述问题的答案,只是指出将回答这个和类似问题的资源方向.

messaging soa distributed domain-driven-design dddd

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

我可以在实体框架中访问 IDbCommandInterceptor 中的实体吗

实现 IDbCommandInterceptor 时,我可以访问为命令/查询创建的 SQL 命令。是否还可以访问在实现的方法中持久/检索的实际实体对象?

这是一些幻想代码来演示我想做的事情:

public class WidgetInterceptor : IDbCommandInterceptor
{
    public void NonQueryExecuting(System.Data.Common.DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
    {
        var widget = interceptionContext.Entity as Widget;

        if(widget != null)
        {
            //Perform tasks on widget before it is saved...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# sql entity-framework interceptor

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

获取Telerik RadScheduler当前视图的日期范围

有没有办法在Telerik RadScheduler中获取当前视图的日期范围?SelectedView告诉我,我是在看月,周等,但我怎么知道我正在看哪个月/周等?无论是那个还是StartDate和EndDate都不错.

最好知道所以我只加载数据库中的相关约会.

asp.net telerik radscheduler

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

如何分别在同一行上使 NVDA 读取元素?

我在使用 NVDA 屏幕阅读器时遇到问题,因为它将在一个块中的同一行上读取所有元素。

例如,使用以下代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Title</title>
        <style>
        nav > ul > li {
            list-style: none;
            display:inline-block;
        }   

        </style>
    </head>
    <body>
        <h1>Title 1</h1>
        <nav role="navigation">
            <ul>
                <li>
                  <a href="#">Link 1</a>
                </li>
                <li>
                  <a href="#">Link 2</a>
                </li>
                <li>
                  <a href="#">Link 3</a>
                </li>
                <li>
                  <a href="#">Link 4</a>
                </li>
            </ul>
        </nav>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这将在一行中显示所有导航链接,这在视觉上是正确的,但 NVDA 在浏览模式下,当使用箭头键滚动时,会将所有链接一起阅读。用户不能在每个单独的链接之间移动,这意味着不可能停留在一个链接上并选择它。

段落中间的链接也会发生同样的情况:

<p>NVDA will not stop on <a href="#">This link</a> so a user can select it.</a>
Run Code Online (Sandbox Code Playgroud)

在我的导航示例中,更改样式使每个链接位于单独的行上:

        nav > ul > li {
            list-style: none; …
Run Code Online (Sandbox Code Playgroud)

html accessibility screen-readers nvda

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

如何验证某些隐藏字段而不是其他字段?

我在表单上使用jQuery不显眼的验证.某些字段是隐藏的,其中一些隐藏字段需要验证,而其他字段则不需要.我理解为了验证隐藏的字段,我可以这样做:

var validator = $("form").data("validator");
validator.settings.ignore = "";
Run Code Online (Sandbox Code Playgroud)

但这会验证所有隐藏的字段.如何指定应验证哪些隐藏字段?

jquery unobtrusive-validation

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

访问存储库的域实体

继续这些辩论:

DDD - 实体不能直接访问 Repositories 的规则

实体可以访问存储库吗?

在某些情况下,域访问存储库感觉更好。以这个例子为例,它假设我需要数据库中的 TaskStatus 表,其中包含用于报告目的的描述:

public class TaskStatus
{
    public long Id {get;set;}
    public string Description {get;set;}
}

public class Task
{
    public long Id {get;set;}
    public string Description {get;set;}
    public TaskStatus Status {get;set;}

    public void CompleteTask()
    {
        ITaskStatusReposity repository = ObjectFactory.GetInstace<ITaskStatusReposity>(); //Or whatever DI you do.
        Status = repository.LoadById(Constants.CompletedTaskStatusId);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以拥有 CompletedTaskStatus 和 OpenTaskStatus 对象,但在某些情况下,这是不必要的,可能会导致类爆炸。

无论如何,如果不是这种事情,为什么存储库接口存储在域中?

architecture domain-driven-design ddd-repositories repository-pattern

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

Elasticsearch匹配短语前缀不匹配所有术语

我遇到一个问题,当我在Elasticsearch中使用match_phrase_prefix查询时,它没有返回我期望的所有结果,尤其是当查询是一个单词后跟一个字母时。

进行以下索引映射(这是保护敏感数据的人为示例):

http://localhost:9200/test/drinks/_mapping
Run Code Online (Sandbox Code Playgroud)

返回:

{
  "test": {
    "mappings": {
      "drinks": {
        "properties": {
          "name": {
            "type": "text"
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在数百万其他记录中,还有:

{
    "_index": "test",
    "_type": "drinks",
    "_id": "2",
    "_score": 1,
    "_source": {
        "name": "Johnnie Walker Black Label"
    }
},
{
    "_index": "test",
    "_type": "drinks",
    "_id": "1",
    "_score": 1,
    "_source": {
        "name": "Johnnie Walker Blue Label"
    }
}
Run Code Online (Sandbox Code Playgroud)

以下查询,是一个单词,后跟两个字母:

POST http://localhost:9200/test/drinks/_search
{
    "query": {
        "match_phrase_prefix" : {
            "name" : "Walker Bl"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

返回此:

{
    "took": 1, …
Run Code Online (Sandbox Code Playgroud)

querying match missing-data elasticsearch

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