我不确定这是关于Entity Framework的问题,还是audit.net库的工作原理,但我猜测它与我如何使用EF进行更新有关.我的目标是仅捕获记录的实际更改,但它将捕获所有内容作为更改,即使旧值和新值相同也是如此.
如果我这样做,基本上是为了尽可能地简化它
var existing = context.Appl.FirstOrDefault(a => a.Id == id);
context.Appl.Update(existing);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
(什么都没改变)
Audit.Net更改日志表示每个字段都已更改,看起来像
"Changes": [
{
"ColumnName": "FOO",
"OriginalValue": "",
"NewValue": ""
},
..... many more
Run Code Online (Sandbox Code Playgroud) 目前,通过我的自动完成设置,我的输入字段显示"[object Object]"而不是所选建议的相应属性.
建议本身渲染正常,正确显示groupName和groupDescription属性,但在选择之后我的输入只是呈现对象而不是'groupName'字段,就像我希望[field]属性指示一样.
<p-autoComplete [(ngModel)]="groupSearchText" [suggestions]="groupResults" (completeMethod)="search($event)" [field]="groupName" [size]="30" [minLength]="3">
<template let-group pTemplate="item">
<div class="ui-helper-clearfix" style="border-bottom:1px solid #D5D5D5">
<div style="font-size:18px;margin:10px 10px 0 0">{{group.groupName}}</div>
<div style="font-size:10px;margin:10px 10px 0 0">{{group.groupDescription}}</div>
</div>
</template>
</p-autoComplete>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 RestRequest.AddFileBytes 将图像文件发布到服务,但是当我这样做时,文件似乎已损坏。当我下载回来时,文件大小稍有偏差,并且根据文件类型,它可能看起来有错误的扩展名或无法解释(大概是因为标头混乱了)
当我尝试用 Postman 做同样的事情时,它的文件没问题,所以这似乎与我发布文件的方式有关。请指教!
private static bool AddPageBytes(string user, string password, string documentId, string fileName, string contentType, byte[] bytes)
{
System.Console.WriteLine($"AddPageBytes documentId:{documentId} fileName:{fileName} contentType:{contentType} bytes:{bytes.Length}");
var client = new RestClient(BASE_URL);
var request = new RestRequest("v1/document/{id}/page", Method.POST);
request.AddUrlSegment("id", documentId);
request.AddHeader("X-IntegrationServer-Username", user);
request.AddHeader("X-IntegrationServer-Password", password);
request.AddHeader("Content-Type", "application/octet-stream");
request.AddHeader("X-IntegrationServer-FileSize", bytes.Length.ToString());
request.AddHeader("X-IntegrationServer-Resource-Name", fileName);
request.AddFileBytes(fileName, bytes, fileName, contentType);
var response = client.Execute(request);
return response.IsSuccessful;
}
Run Code Online (Sandbox Code Playgroud) 我有 2 点网络核心应用程序。一个用作 API 服务器,另一个用作 Angular Web 客户端。
为了让事情顺利完成,我将其放入 API 服务器启动的ConfigureServices 方法中。我相信这只会允许任何请求..
services.AddCors(options =>
{
options.AddPolicy(ALL_ORIGINS,
builder =>
{
builder.WithOrigins("*");
});
});
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但我所有的请求都是 GET。我第一次尝试 POST 时收到错误
预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段内容类型
考虑到我在 API 服务器上有一个蹩脚的临时解决方案,我在 Angular Web 客户端服务器中放置了相同的“*”cors 策略,但它没有帮助。
我不确定我需要在这里做什么..