在我的 .net core 3.1 应用程序中,我想将属性封装在某个实体中:
public class Sample : AuditableEntity
{
public Sample(string name)
{
Name = name;
}
public int Id { get; }
public string Name { get; }
}
Run Code Online (Sandbox Code Playgroud)
因此,我删除了所有公共设置器,因此当我想检查此类 Sample 是否已存在时,我的代码中的某个位置
_context.Samples.Any(r => r.Name == name)
Run Code Online (Sandbox Code Playgroud)
该行导致错误:System.InvalidOperationException: 'No suitable constructor found for entity type 'Sample'. The following constructors had parameters that could not be bound to properties of the entity type: cannot bind 'name' in 'Sample(string name)'.'。
所以我添加了代码空构造函数
public class Sample : AuditableEntity
{ …Run Code Online (Sandbox Code Playgroud) .net c# entity-framework-core .net-core entity-framework-core-3.1
我有以下情况:
启动.cs
services.AddSingleton<IConfigurationManager, ConfigurationManager>();
ConfigurationManager configurationManager = new ConfigurationManager();
services.AddDbContext<MyContext>(options =>
options.UseSqlServer(configurationManager.DatabaseConnectionString));
Run Code Online (Sandbox Code Playgroud)
因此,为了创建我的上下文,我需要它configurationManager提供给我的连接字符串。但是,我仍然想保留ConfigurationManager即服务。
有没有一种方法可以在不显式实例化的情况下执行此操作,configurationManager或者是否可以像这样保留它?
c# dependency-injection dbcontext entity-framework-core asp.net-core
这是更新的问题,我的代码中曾经有一个错误
我希望能够将数据块发送给客户端。
任何事情都会受到赞赏。
有没有办法为 ASP.NET 核心提供更多控制它如何流式传输数据的方法。
我很担心下面的代码是如何缩放的。
有人可以建议如何通过asp.net core中的web api流式传输数据吗?
提供的答案和下面的代码有效。我不确定它是如何扩展的?
是否可以检索数据块并将它们写入请求,只需将数据块放入内存中。所以我将能够下载非常大的文件。
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
return File(System.IO.File.OpenRead(filePath), "audio/mpeg");
}
Run Code Online (Sandbox Code Playgroud) public class Node<E> : IPosition<E>
{
private E element;
public Node<E> PrevNode { get; set; }
public Node<E> NextNode { get; set; }
//Constructor
public Node(E e, Node<E> p, Node<E> n)
{
element = e;
PrevNode = p;
NextNode = n;
}
}
Run Code Online (Sandbox Code Playgroud)
我有上面的Node类,当我创建一个新的节点对象时,我想要这样做:
Node<E> n = new Node<E>(null, null, null);
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为所有类型都不能为空.让我感到惊讶的是,当我在Java中尝试类似的东西时,它是有效的.我在Stack Overflow上看到了一些相关的问题,但是他们没有给出我想要的结果.我不想用default(E).
我正在尝试从另一个 C# 字符串列表中减去一个 C# 字符串列表。我使用两个单独的解决方案,当我查看原始列表计数并减去列表计数数量和结果时,两者都没有意义。
每个解决方案的结果都会发生变化,并且两者都没有给出正确的数字。
解决方案1:
结果:1365
var result = tempListUnifier.Except(removalList);
Run Code Online (Sandbox Code Playgroud)解决方案2:
结果:1481
var result = tempListUnifier;
foreach(string item in removalList)
{
result.Remove(item);
}
Run Code Online (Sandbox Code Playgroud)我想知道为什么我在两种解决方案中得到不同的结果?其实我想得到真正的结果,即 2398 - 930 = 1468 。这怎么可能?
我有这个小的地理位置数据集。
37.9636140,23.7261360
37.9440840,23.7001760
37.9637190,23.7258230
37.9901450,23.7298770
Run Code Online (Sandbox Code Playgroud)
从一个随机位置。例如,37.97570, 23.66721
我需要使用 awk 创建一个 bash 命令,该命令返回具有简单欧几里德距离的距离。这是我使用的命令
awk -v OFMT=%.17g -F',' -v long=37.97570 -v lat=23.66721 '{for (i=1;i<=NR;i++) distances[i]=sqrt(($1 - long)^2 + ($2 - lat)^2 ); a[i]=$1; b[i]=$2} END {for (i in distances) print distances[i], a[i], b[i]}' filename
Run Code Online (Sandbox Code Playgroud)
当我运行这个命令时,我得到了这个不正确的奇怪结果,有人可以向我解释我做错了什么吗?
? awk -v OFMT=%.17g -F',' -v long=37.97570 -v lat=23.66721 '{for (i=1;i<=NR;i++) distances[i]=sqrt(($1 - long)^2 + ($2 - lat)^2 ); a[i]=$1; b[i]=$2} END {for (i in distances) print distances[i], a[i], b[i]}' filename
44,746962127881936 37.9440840 23.7001760
44,746962127881936 37.9901450 …Run Code Online (Sandbox Code Playgroud)