小编Rob*_*Rob的帖子

C#数组初始化 - 使用非默认值

在C#中初始化动态大小数组的最简单的方法是什么?

这是我能想到的最好的

private bool[] GetPageNumbersToLink(IPagedResult result)
{
   if (result.TotalPages <= 9)
      return new bool[result.TotalPages + 1].Select(b => true).ToArray();

   ...
Run Code Online (Sandbox Code Playgroud)

.net c#

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

通知面板类似于stackoverflow

还记得显示在页面顶部的小div来通知我们的事情(比如新的徽章)吗?

我也希望实现类似的东西,并且正在寻找一些最佳实践或模式.

我的网站也是一个ASP.NET MVC应用程序.理想情况下,答案将包括像"把细节在母版页"和"做这样的控制器".

为了避免您不必自己查看,这是我在未在stackoverflow登录时收到的欢迎消息中看到的代码.

<div class="notify" style="">
  <span>
    First time at Stack Overflow? Check out the
    <a href="/messages/mark-as-read?returnurl=%2ffaq">FAQ</a>!
  </span>
  <a class="close-notify" onclick="notify.close(true)" title="dismiss this notification">×</a>
</div>

<script type="text/javascript">

  $().ready(function() {
    notify.show();
  });

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

我想补充一点,我完全理解这一点,也理解jquery的参与.我只是对将代码放入标记以及何时("谁"以及ASP.NET MVC应用程序中的哪些实体)感兴趣.

谢谢!

asp.net-mvc

26
推荐指数
2
解决办法
3418
查看次数

使用ORM时如何实现命令查询分离(CQS)?

CQS体系结构模式背后的原理是将查询和命令分成不同的路径.理想情况下,您的持久性存储可以进行读/写分区,但在我的情况下,有一个规范化的数据库.

如果您使用的是ORM(在我的情况下是NHibernate),很明显在发出命令时会使用ORM.但是,在为用户屏幕设置数据(DTO)时需要运行的各种查询怎么样呢?在执行CQS的查询端时,通常会抛弃ORM吗?

我应该在哪里实现我的查询和DTO预测?直接ADO.NET(datareaders,dtos,datatables,stored procs)?有些查询非常独特,需要很多连接来将所有内容组合在一起.我不想为查询反规范化数据库,但我可以创建视图(穷人的非规范化).

nhibernate orm cqrs

17
推荐指数
2
解决办法
5596
查看次数

MSBuild exec任务没有阻塞

有人会碰巧知道一个会阻止这个MSBuild任务阻止的技巧吗?我真的只是想要打开资源管理器和构建脚本继续前进.目前,它会阻止Exec任务,直到资源管理器窗口关闭.

<Target Name="OpenExplorer">
    <Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />
</Target>
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:我希望避免为此创建自定义任务.也许某些命令行魔法存在,可以内联为Command

msbuild

15
推荐指数
4
解决办法
8903
查看次数

沉迷于LINQ

好吧,我使用LINQ越多,我就越喜欢它!我最近发现自己正在处理一些遗留代码.它是您经典的DataSet和DataTable丰富的应用程序.好吧,当添加一些功能时,我发现自己真的只想查询DataTable的行以获得我正在寻找的结果.

让我再说一遍......我只想问Rows集合我需要的东西,而不是循环并添加到临时集合中.没有循环,没有临时变量,只需给我我想要的东西.

var customerOrderIds = table.Rows.Cast<DataRow>()
   .Where(x => (string)x["CUSTOMER_ID"] == customerId)
   .Select(x => (string)x["CUSTOMER_ORDER_ID"])
   .Distinct();
Run Code Online (Sandbox Code Playgroud)

我的问题是这是否是一件好事,或者是否被LINQ带走了?在我看来,这种从集合中提取数据子集的声明式风格是一件好事,最终更具可读性.但话说回来,也许我只是被打败了:)

.net linq

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

Linq to NHibernate多个OrderBy调用

我在Linq to NHibernate查询中通过多个字段进行排序时遇到问题.有没有人知道什么可能是错的或者是否有解决方法?

码:

IQueryable<AgendaItem> items = _agendaRepository.GetAgendaItems(location)
   .Where(item => item.Minutes.Contains(query) || item.Description.Contains(query));

int total = items.Count();

var results = items
   .OrderBy(item => item.Agenda.Date)
   .ThenBy(item => item.OutcomeType)
   .ThenBy(item => item.OutcomeNumber)
   .Skip((page - 1)*pageSize)
   .Take(pageSize)
   .ToArray();

return new SearchResult(query, total, results);
Run Code Online (Sandbox Code Playgroud)

我尝试用多个OrderBy调用替换ThenBy.结果相同.如果我注释掉两个ThenBy调用,该方法效果很好.

我收到的错误:

    [SqlException (0x80131904): Invalid column name '__hibernate_sort_expr_0____hibernate_sort_expr_1__'.
    Invalid column name '__hibernate_sort_expr_0____hibernate_sort_expr_1__'.]
       System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1948826
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844747
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392

    [ADOException: could not execute …

linq nhibernate linq-to-nhibernate

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

返回空集合

看看这个测试:

[TestFixture]
public class Quick_test
{
   [Test]
   public void Test()
   {
      Assert.AreEqual(0, GetByYield().Count());
      Assert.AreEqual(0, GetByEnumerable().Count());
   }

   private IEnumerable<string> GetByYield()
   {
      yield break;
   }

   private IEnumerable<string> GetByEnumerable()
   {
      return Enumerable.Empty<string>();
   }
}
Run Code Online (Sandbox Code Playgroud)

当我编写存根方法时,我通常使用Enumerable.Empty方法.我偶然发现了我编写的一些旧代码,其中我使用了yield方式.

这让我想知道:

  • 哪个在视觉上更吸引其他开发者?
  • 是否有任何隐藏的陷阱会导致我们偏爱另一个?

谢谢!

c# linq

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

MassTransit队列维护

MassTransit中是否有可以帮助管理队列的内容?

我特意想到错误队列.我看到类似于此的线程,但我不打算用实用程序来管理它,而是在代码中.

场景:

  • Web客户端 - 将命令作为消息发布到应用程序服务器上的远程队列.

  • 应用程序服务器 - 命令被使用和执行.如果命令在执行期间抛出,则将其置于错误队列中.

  • Web客户端 - 最终用户可以查看错误队列中的所有命令.他们一次解决一个并将它们重新发布以便再次执行.

前两个很容易.第三个是我现在所处的位置.任何建议都非常感谢.

谢谢,
罗布

messaging masstransit message-queue servicebus

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