小编Nib*_*Pig的帖子

在C#中更新List中结构的属性

我有一个List<Cat>地方Catstruct有一个ID和一个名称.

如何更改ID为7的猫的名称?

我做了(没想到)

var myCat = catList.Single(c => c.Id == 7);

mycat.Name = "Dr Fluffykins";
Run Code Online (Sandbox Code Playgroud)

但当然,结构是价值类型.那么是否可以使用这样的技术,或者我是否必须更改.Singlefor循环并存储索引以使用更新的结构替换它?

c# struct

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

如何通过接口解决这个问题?

我正在使用实体框架,这就是我的问题所在,但它可能不相关,因为我认为这是一个通用的 C# 问题。

我有一个MyContext具有许多DbSet<T>属性的类。

为了对其进行单元测试,我编辑了 MyContext,因此它们被IDbSet<T>替换并模拟了所有内容。IDbSet<T>是实体框架的一部分,DbSet 实现它,因此两者几乎相同。

一切都这样顺利,因为我可以尽IDbSet<T>我所能DbSet<T>

除了一件事之外的所有内容 -DbSet有一个名为SqlQuery(..)我也希望能够从我的IDbSet.

由于我无法更改DbSetIDbSet,这给我留下了一个难题。我无法完全弄清楚如何制作它,因此我IDbSet能够SearchQuery(..)以某种逻辑方式添加一个方法。

那有意义吗?我很困惑,所以我可能忽略了一些非常简单的事情,例如复制和粘贴IDbSet、重命名并添加SearchQuery(). 有任何想法吗?

c# interface

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

LINQ to entities忽略了我的orderby语句

我有以下代码:

var myCats = _context.Cats.Where(c => c.OwnerId == 1).OrderBy(c => c.Age);

var uniqueCatIds = myCats.Select(c => c.CatId).Distinct();
Run Code Online (Sandbox Code Playgroud)

出于某种原因,OrderBy当我使用探查器检查输出SQL时,将忽略该子句.我想要做的是按照它们在myCats中出现的顺序选择所有唯一的猫ID,并保留请求的IQueryable性质.

如果我放在.ToList()OrderBy之后,则排序出现在SQL中并且它可以工作.然而,有这么多猫,这样做很慢.

任何想法为什么会这样?

c# linq-to-entities sql-server-2012

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

如何在web api中创建一个int []参数?

我在我的api上有一堆操作,它们是通用的GetById和GetByIds,它们将实体拉出并通过格式化程序返回.

这些操作如下所示:

[HttpGet]
[Route("ByIds")]
public IHttpActionResult ByIds([FromUri]int[] ids)
{
    var items = _myContext.SomeEntity.Where(a => ids.Contains(a.ID)).ToList();
    return SomeFormatter(items);
}
Run Code Online (Sandbox Code Playgroud)

http://localhost/api/SomeEntity/ByIds?ids=1&ids=2例如,如果你点击这个,就会得到一个1和2的数组,正如你所期望的那样.

如果你点击它http://localhost/api/SomeEntity/ByIds?ids=可能会得到一个空数组,但你得到int[1]一个值0.

我怀疑发生了什么是它将其识别为指定的一个元素,无法转换它,因此使用default(int)并将其放入数组中,这会为您提供一个具有一个值的int数组,值为0.

但是,如果你点击它http://localhost/api/SomeEntity/ByIds?ids=potato然后你得到一个无效的模型状态,我自动处理它.

问题是,将空查询参数值映射到空数组或ModelState错误(即,如果提供空值,则与马铃薯行为相同)的方法是什么?我认为模型状态错误是首选,更合乎逻辑.

asp.net-mvc model-binding asp.net-web-api

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

减少或消除页面加载时 SVG 字体闪烁

我们刚刚购买了专业版并切换到 SVG,因为图标看起来更好了。

然而,我们在加载图标时每个页面上都存在一些闪烁问题。

我通过确保图标加载时不会调整页面大小,稍微减轻了它的不和谐性质(就像之前带有文本的图标将在容器顶部加载文本一样,然后图标加载将向下移动)。

但它仍然有点令人恼火。CSS 版本不会出现这些问题。

具体来说:

  • 有没有什么办法可以最大限度地减少这种影响,我没有想到
  • 我们可以在加载页面之前强制加载 svg 吗?对 font Awesome 的引用是一个 javascript 文件,但我已经将其放入<head>顶部。
  • 我们可以延迟页面加载直到它准备好吗?
  • 是否有一种混合解决方案,它最初加载 CSS 版本,然后在加载 svg 版本时替换它们?

svg font-awesome font-awesome-5

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

dotnet ef dbcontext脚手架命令--data-annotations或-d命令行参数似乎不起作用

我有一个简单的数据库,其中有一张表,该表具有各种属性。

我正在使用最新的 .NET core 6 和最新的 EF (6.0.4)

我想构建我的数据库以便它生成模型,所以我运行命令:

dotnet ef dbcontext scaffold "Server=MyServerName;Database=MyDBName;User Id=sa;Password=abc123;" 
Microsoft.EntityFrameworkCore.SqlServer -o Model --no-pluralize -d -f
Run Code Online (Sandbox Code Playgroud)

-d 命令应该使用数据注释而不是流畅注释,但事实并非如此。我最终得到一个MyTable类,其中清楚地列出了属性,例如public int MyTableId; public string MyTableProperty;....,然后在我的MyDBNameContextOnModelCreating方法中,有几页这样的内容:

 modelBuilder.Entity<MyTable>(entity =>
            {
                entity.HasIndex(e => e.SomeColumn, "idx_somecolumn");

                entity.Property(e => e.firstcolumn)
                    .HasColumnType("decimal(8, 1)")
                    .HasColumnName("FirstColumn");

                ...
Run Code Online (Sandbox Code Playgroud)

这真是太可怕了。帮助中是这么说的:

-d|--data-annotations 使用属性来配置模型(如果可能)。如果省略,则仅使用 Fluent API。

我可以煞费苦心地手动完成并添加注释,但如果我将来由于更改而重新生成,那么它将撤消我的工作。

数据注释属性不起作用是否有原因?

.net scaffolding entity-framework-core entity-framework-migrations

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

ASP.NET有一个复选框列表,在4x5网格中有我很好的复选框

我有一个复选框列表,可以在列表中显示它们

A
B
C
D
Run Code Online (Sandbox Code Playgroud)

或水平的

A B C D
Run Code Online (Sandbox Code Playgroud)

我想把它们安排在这样一个漂亮的网格中

A B C D
E F G H
I J K L
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

asp.net checkboxlist

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

如何在asp.net中向客户端发送"拒绝访问"的http响应?

在我的页面加载中,我检查了一些内容,并且我希望显示标准的"拒绝访问"消息,而无需经历创建要重定向到的页面的麻烦.

有一个简单的方法吗?

asp.net

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

Visual Studio 2010中的Microsoft图表控件?

这可能吗?我安装了它们,但它们没有出现.我必须导入它们吗?

asp.net-4.0

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

Boolean和[Boolean]有什么区别?

我通过C#到VB的自动翻译器运行了一些代码,它翻译了一些这样的代码:

Public Property Title As [String]
Run Code Online (Sandbox Code Playgroud)

这有什么不同

Public Property Title As String
Run Code Online (Sandbox Code Playgroud)

为什么两者都存在?

vb.net identifier

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