小编Rad*_*erz的帖子

内置.Net算法,将值舍入到最接近的10个区间

如何在C#中将任意值舍入到10个区间?例如,如果我有11,我希望它返回10,如果我有136,那么我希望它返回140.

我可以轻松地手工完成

return ((int)(number / 10)) * 10;
Run Code Online (Sandbox Code Playgroud)

但我正在寻找一种内置算法来完成这项工作,比如Math.Round().我不想手工做的原因是我不想在我的项目中编写相同或类似的代码,即使是像上面那样简单的东西.

c# math rounding

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

Access-Control-Max-Age与Cache-Control

http响应头中的Access-Control-Max-Age和Cache-Control有什么区别?

Access-Control-Max-Age:1728000
Cache-Control:max-age=21600, public
Run Code Online (Sandbox Code Playgroud)

我觉得他们没有提到同一件事,因为他们经常一起出现,有时候会有不同的价值观.

如果他们这样做既出现在HTTP头中,但包含不同的值,这将是有效的?

http-headers

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

LINQ 中的更新查询包含 WHERE 子句中的所有列,而不仅仅是主键列

我正在使用 Linq 更新表中的单个列,请使用下面的虚构表格。

MyTable(PKID、ColumnToUpdate、SomeRandomColumn)

var row = (from x in DataContext.MyTable
           where b.PKID == 5
           select x).FirstOrDefault();

row.ColumnToUpdate = 20;
DataContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

这会将专栏更新为预期的内容,这并不奇怪。但是,当我检查生成的 SQL 命令时,它会执行以下操作:

UPDATE [dbo].[MyTable ]
SET [ColumnToUpdate ] = @p2
WHERE ([PKID] = @p0) AND ([SomeRandomColumn] = @p1) 
Run Code Online (Sandbox Code Playgroud)

这是执行更新,但前提是所有列都与实体期望的值匹配,而不是单独引用主键列。

如果数据库列被另一个进程更改,这在这个特定项目中是非常可行的;例如。在获取要操作的行、计算要设置值的更改以及以一批行形式发出更新命令之间存在一个窗口。在这种情况下,查询将引发异常,从而导致部分更新,除非我捕获、重新加载数据并重新发送单个查询。它还有一个缺点,即行信息可能非常大(例如,包含 HTML 标记),并且整个信息都会传递给 SQL,并在处理较大批次时减慢系统速度。

有没有办法让 Linq / Entity 仅根据Where 子句中的 PK 列发出更新命令?

linq linq-to-sql optimistic-concurrency

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

用于检查 3 个或更多变量的运算符

c# 中是否有运算符用于检查是否有多个值匹配,例如简化此操作:

if (a == b && b == c)
Run Code Online (Sandbox Code Playgroud)

变成这样的东西,这是无效的

if (a == b == c)
Run Code Online (Sandbox Code Playgroud)

只是好奇比什么都重要。

c# operators

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