在搜索通过EF执行CRUD操作的最佳实践时,我注意到强烈建议在更新实体之前使用Attach()或使用Find()方法.它工作得很好,根据EF文档,这些方法将实体提取到上下文中,这对我来说非常清楚.但是followind代码让我很困惑
public void Update(object entity)
{
Record record = new Record() {
id = 1,
value = 5
};
using (SomeContext ctx = new SomeContext())
{
ctx.Entry(record).State = EntityState.Modified;
ctx.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
假设我们在数据库中有一个id = 1的记录.在这种情况下,上面的代码将更新记录(将值设置为5).问题是为什么它有效?然后我为什么要使用Attach()?据我所知,记录并未以任何方式附加到上下文中.我读到的有关章节这本书和教程,但他们使用2查询的方法.我也上了SO,但没有找到我的问题的答案.请帮我解释一下或好一些好的东西.
我使用ASP.NET MVC和bootstrap.我在集合中有很多对象(> 2),每个需要一个<div class="col-xs-6">但是连续只有2个col.如何使用循环来实现这个目标?有一种方法,但我正在寻找更好的东西:
@model List<Object>
@using (Html.BeginForm("ActionName", "ControllerName"))
{
<div class="row">
@for (int i = 0; i < Model.Count; i++)
{
if (i % 2 != 0) {
<div class="row">
<div class="col-xs-6">
@Html.TextBoxFor(o => o[i].Value)
</div>
</div>
} else {
<div class="col-xs-6">
@Html.TextBoxFor(o => o[i].Value)
</div>
}
}
</div>
}
Run Code Online (Sandbox Code Playgroud) 我正在围绕 EF Core 编写一个小包装方法DbSet。我有以下方法:
public Task<IList<TEntity>> GetAsync(Func<IQueryable<TEntity>, IQueryable<TEntity>> getFunction)
{
if (getFunction == null)
{
Task.FromResult(new List<TEntity>());
}
return getFunction(_dbSet).AsNoTracking().ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,该类是通用的,并且 _dbSet 是DbSet上下文中具体的实例。然而,对于这个问题来说,这并不重要。
对于代码我得到以下错误:
[CS0029] 无法将类型“System.Threading.Tasks.Task>”隐式转换为“System.Threading.Tasks.Task>”
如果我将返回值更改为Task<List<TEntity>>则不会出现错误。
有谁知道为什么它不能转换它?谢谢!
根据 UML Superstruction 规范 v2.4,UML 类图中的接口有两种不同的表示法。其中一个是普通的盒子,上面有“接口”字样和名称,另一个是上面有名称的圆圈(鲍勃叔叔称之为棒棒糖)。
问题是 - 什么时候应该使用圆圈表示法?是否适合实现该接口的类仅在接口中定义公共方法的情况?因此,如果它仅通过接口使用 - 接口中设置的方法是显而易见的,也许我可以使用这个圆圈符号。请帮我解决这个问题。规范对半圆表示法非常清楚,但对圆则不清楚。
我在尝试ssh2使用 pecl安装扩展时遇到以下错误:
17 warnings and 3 errors generated.
make: *** [ssh2_fopen_wrappers.lo] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)
这是我所做的:
brew install php
brew install libssh2
pecl install ssh2-1.1.2
Run Code Online (Sandbox Code Playgroud)
那安装了 php 7.3.3,libssh2 1.8.0 并且无法安装 ssh2-1.1.2。
有没有人有解决问题的方法?谢谢!
相关链接:
https : //github.com/docker-library/php/issues/767
为 PHP 安装 PECL SSH2 扩展
我在尝试解决需要非控制器中的一些标头的问题时发现了这篇文章。
我对这种方法持怀疑态度,作者没有回应。我主要关心的是使用 global static 的方法HttpContext。我在想它不应该处理两个请求。这种情况的一个例子如下(连同我提到的文章中介绍的方法):
public static class AppContext
{
public static IHttpContextAccessor HttpContextAccessor { get; set; }
public static void Configure(IHttpContextAccessor accessor)
{
HttpContextAccessor = accessor;
}
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
IHttpContextAccessor contextAccessor)
{
AppContext.Configure(contextAccessor);
...
}
[Route("api/[controller]")]
[ApiController]
public class ExampleController : ControllerBase
{
[HttpGet("{number}")]
public IActionResult Example(int number)
{
if (number == 1)
{
Thread.Sleep(10000);
}
var result = AppContext.HttpContextAccessor.HttpContext.Request.GetDisplayUrl();
return Ok(result + " " + number);
} …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何在 ASP.NET Core 3.1 Web Api 项目中设置 NodaTime JSON 序列化。这里描述的方式对我不起作用
services.AddJsonFormatters(settings => settings.ConfigureForNodaTime(DateTimeZoneProviders.Tzdb));
Run Code Online (Sandbox Code Playgroud)
因为没有像AddJsonFormatterson这样的方法services : IServiceCollection。
安装的软件包:
NodaTime v 3.0.3
NodaTime.Serialization.JsonNet v 3.0.0
Microsoft.AspNetCore.Mvc.NewtonsoftJson v 3.1.9
Newtonsoft.Json v 12.0.3
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?我应该在 Startup.cs 中使用什么方法来配置 NodaTime?
我正在尝试创建一个过滤器DropDownList.
他们正在使用数据源.
问题是 - 这些来源不包含空值,过滤器始终有效.我当然不需要它.我试图添加ListItem正确DropDownList但但它没有帮助.
这是我的一个DropDownList.
<asp:DropDownList ID="ddl" runat="server" DataSourceID="sds"
DataTextField="name" DataValueField="id">
</asp:DropDownList>
<asp:SqlDataSource ID="sds" runat="server"
ConnectionString="<%$ ConnectionStrings:conStr %>"
OnInit="sds_Init"></asp:SqlDataSource>>
Run Code Online (Sandbox Code Playgroud)
将不胜感激!
c# ×6
asp.net ×2
asp.net-core ×1
asp.net-mvc ×1
async-await ×1
asynchronous ×1
covariance ×1
crud ×1
dropdown ×1
homebrew ×1
httpcontext ×1
libssh2 ×1
nodatime ×1
pecl ×1
php-7.3 ×1
razor ×1
ssh2 ×1
uml ×1