在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) 还记得显示在页面顶部的小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应用程序中的哪些实体)感兴趣.
谢谢!
CQS体系结构模式背后的原理是将查询和命令分成不同的路径.理想情况下,您的持久性存储可以进行读/写分区,但在我的情况下,有一个规范化的数据库.
如果您使用的是ORM(在我的情况下是NHibernate),很明显在发出命令时会使用ORM.但是,在为用户屏幕设置数据(DTO)时需要运行的各种查询怎么样呢?在执行CQS的查询端时,通常会抛弃ORM吗?
我应该在哪里实现我的查询和DTO预测?直接ADO.NET(datareaders,dtos,datatables,stored procs)?有些查询非常独特,需要很多连接来将所有内容组合在一起.我不想为查询反规范化数据库,但我可以创建视图(穷人的非规范化).
有人会碰巧知道一个会阻止这个MSBuild任务阻止的技巧吗?我真的只是想要打开资源管理器和构建脚本继续前进.目前,它会阻止Exec任务,直到资源管理器窗口关闭.
<Target Name="OpenExplorer">
<Exec Command='explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />
</Target>
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:我希望避免为此创建自定义任务.也许某些命令行魔法存在,可以内联为Command
?
好吧,我使用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带走了?在我看来,这种从集合中提取数据子集的声明式风格是一件好事,最终更具可读性.但话说回来,也许我只是被打败了:)
我在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 …
看看这个测试:
[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方式.
这让我想知道:
谢谢!
MassTransit中是否有可以帮助管理队列的内容?
我特意想到错误队列.我看到类似于此的线程,但我不打算用实用程序来管理它,而是在代码中.
场景:
Web客户端 - 将命令作为消息发布到应用程序服务器上的远程队列.
应用程序服务器 - 命令被使用和执行.如果命令在执行期间抛出,则将其置于错误队列中.
Web客户端 - 最终用户可以查看错误队列中的所有命令.他们一次解决一个并将它们重新发布以便再次执行.
前两个很容易.第三个是我现在所处的位置.任何建议都非常感谢.
谢谢,
罗布
linq ×3
.net ×2
c# ×2
nhibernate ×2
asp.net-mvc ×1
cqrs ×1
masstransit ×1
messaging ×1
msbuild ×1
orm ×1
servicebus ×1