- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 .NET Core 3 和 EF Core 开发应用程序。我遇到了一个无法找到解决方案的错误。我无法在“.Net Core 3”上创建一个可以用 PHP eloquent 简单创建的结构。
型号;
public NDEntityContext(DbContextOptions<NDEntityContext> options)
: base(options)
{ }
public DbSet<User> Users { get; set; }
public DbSet<Order> Orders { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<User>(entity =>
{
entity.Property(u => u.CreatedAt)
.HasDefaultValueSql("DATEADD(HOUR, +3, GETUTCDATE())");
entity.HasMany(u => u.Orders)
.WithOne(o => o.User);
});
modelBuilder.Entity<Order>(entity =>
{
entity.Property(o => o.CreatedAt)
.HasDefaultValueSql("DATEADD(HOUR, +3, GETUTCDATE())");
entity.HasOne(o => o.User)
.WithMany(u => u.Orders)
.HasForeignKey(o => o.UserId)
.HasConstraintName("Fk_Order_User");
});
}
}
public class User : EntityBase
{
public int UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName { get; set; }
public int Type { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Password { get; set; }
public string Gender { get; set; }
[IgnoreDataMember]
public string HomePhone { get; set; }
[IgnoreDataMember]
public string WorkPhone { get; set; }
public DateTime? BirthDate { get; set; }
public string SmsConfCode { get; set; }
public bool IsActive { get; set; }
public bool IsOutOfService { get; set; }
public ICollection<Order> Orders { get; set; }
}
public class Order : EntityBase
{
public int OrderId { get; set; }
public int UserId { get; set; }
public User User { get; set; }
public decimal Price { get; set; }
}
用户 Controller :
[Route("api")]
[ApiController]
public class UserController : ControllerBase
{
private readonly NDEntityContext _context;
private readonly ILogger<UserController> _logger;
public UserController(ILogger<UserController> logger, NDEntityContext context)
{
_logger = logger;
_context = context;
}
[HttpGet("users")]
public async Task<ActionResult<IEnumerable<User>>> GetUsers()
{
_logger.LogInformation("API Users Get");
return await _context.Users.ToListAsync();
}
[HttpGet("user/{id:int}")]
public async Task<ActionResult<User>> GetUser(int id)
{
_logger.LogInformation("API User Get");
return await _context.Users.Include(u => u.Orders).FirstOrDefaultAsync(e => e.UserId == id);
}
}
启动ConfigureServices
;
services.AddControllersWithViews().AddNewtonsoftJson(opt => opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);
services.AddDbContext<NDEntityContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DevConnection")));
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "ND API", Version = "v1" });
});
localhost/api/users/
;
[
{
"userId": 1,
"firstName": "John",
"lastName": "Doe",
"fullName": "John Doe",
"type": 1,
"email": "jhondoe@test.com",
"phone": "01234567890",
"password": "123456789",
"gender": "Man",
"homePhone": "123456789",
"workPhone": "987654321",
"birthDate": null,
"smsConfCode": null,
"isActive": true,
"isOutOfService": false,
"orders": null,
"createdAt": "2019-10-01T21:47:54.2966667",
"updatedAt": null,
"deletedAt": null
}
]
localhost/api/user/1/
;
System.Text.Json.JsonException: A possible object cycle was detected which is not supported. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 32.
at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_SerializerCycleDetected(Int32 maxDepth)
at System.Text.Json.JsonSerializer.Write(Utf8JsonWriter writer, Int32 originalWriterDepth, Int32 flushThreshold, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.JsonSerializer.WriteAsyncCore(Stream utf8Json, Object value, Type inputType, JsonSerializerOptions options, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
HEADERS
=======
Accept: application/json
Accept-Encoding: gzip, deflate, br
Accept-Language: tr,en;q=0.9
Connection: close
Cookie: .AspNet.Consent=yes
Host: localhost:44352
Referer: https://localhost:44352/swagger/index.html
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
sec-fetch-mode: cors
sec-fetch-site: same-origin
当我删除 .Include(u => u.Orders)
代码时,我可以像 localhost/api/users/
那样获得成功响应。当我使用 Include 时看到此错误
我想得到这个回复;
{
"userId": 0,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"type": 0,
"email": "string",
"phone": "string",
"password": "string",
"gender": "string",
"birthDate": "2019-10-02T18:24:44.272Z",
"smsConfCode": "string",
"isActive": true,
"isOutOfService": true,
"orders": [
{
"orderId": 0,
"userId": 0,
"price": 0,
"createdAt": "2019-10-02T18:24:44.272Z",
"updatedAt": "2019-10-02T18:24:44.272Z",
"deletedAt": "2019-10-02T18:24:44.272Z"
}
],
"createdAt": "2019-10-02T18:24:44.272Z",
"updatedAt": "2019-10-02T18:24:44.272Z",
"deletedAt": "2019-10-02T18:24:44.272Z"
}
最佳答案
对于 .NET Core 3,NewtonJson 刚刚发布了一个新补丁。当我安装包 Microsoft.AspNetCore.Mvc.NewtonsoftJson
时,问题得到解决。
关于json - .Net Core 3 和 EF Core 3 包含问题 (JsonException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207874/
创建使用.NET框架的asp.net页面时,访问该页面的客户端是否需要在其计算机上安装.NET框架? IE。用户访问www.fakesite.com/default.aspx,如果他们没有安装框架,他
我阅读了很多不同的博客和 StackOverflow 问题,试图找到我的问题的答案,但最后我找不到任何东西,所以我想自己问这个问题。 我正在构建一个应用程序,其中有一个长时间运行的工作线程,它执行一些
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 我一直想知道为什么微软为这样一个伟大的平台选择了一个如此奇怪的、对搜索引擎不友好的名称。他们就
.Net Framework .Net .NET Standard的区别 1、.NET Framework 在未来.NET Framework或许成为过去时,目前还是有很多地方在使用的。这一套
如果有选择的话,您会走哪条路? ASP.NET Webforms + ASP.NET AJAX 或 ASP.NET MVC + JavaScript Framework of your Choice
我有一个 Web 服务,它通过专用连接通过 https 使用第三方 Web 服务,我应用了 ServicePointManager.ServerCertificateValidationCallbac
为什么我应该选择ASP.NET Web Application (.NET Framework)而不是ASP.NET Core Web Application (.NET Framework)? 我在
我在网络上没有找到任何关于包含 .NET Standard、.NET Core 和 .NET Framework 项目的 .NET 解决方案的公认命名约定。 就我而言,我们在 .NET 框架项目中有以
.NET Compact 是 .NET 的完美子集吗? 假设我考虑了屏幕大小和其他限制并避免了 .NET Compact 不支持的类和方法,或者 .NET Compact 是一个不同且不兼容的 GUI
我已经阅读了所有我能找到的关于 connectionManagement 中的 maxconnection 设置的文章:即 http://support.microsoft.com/kb/821268
我现在正在使用asp.net mvc,想知道使用内置的Json或 Json.Net哪个是更好的选择,但我不确定一个人是否比另一个人有优势。 另外,如果我确实选择沿用Json.Net的路线,那么我应该选
在 Visual Studio 中,您至少可以创建三种不同类型的类库: 类库(.NET Framework) 类库(.NET 标准) 类库(.NET Core) 虽然第一个是我们多年来一直使用的,但我
.NET 和 ASP.NET 之间有什么区别?它们有什么关系? 最佳答案 ASP.Net 基于 .Net 框架构建,提供有关 Web 开发的附加功能。 你可以去看看wikipedia article
在安装更高版本(3.0)之前,我需要安装.net框架1.1和2.0吗?或者单独安装 3.0 框架就足够了,并为在早期框架版本上编写的软件提供支持?谢谢 ,丽然 最佳答案 不,您不必安装以前的框架。 我
我正在开发一个项目,人们可以“更新”类别,例如更改类别的名称。我收到以下消息 This is called after clicking update 按钮 with the SQL statemen
.NET 类 System.Net.CookieContainer 线程安全吗? --更新:交 key 答复-- 是否有任何方法可以确保异步请求期间修改的变量(即 HttpWebRequest.Coo
我正在使用 JScript.NET 在我编写的 C# WinForms 应用程序中编写脚本。它工作得很好,但我只是尝试在脚本中放置一些异常处理,但我无法弄清楚如何判断我的 C# 代码抛出了哪种类型的异
我需要你的帮助, 比如我有一个小数类型的变量,我想这样取整。 例如 3.0 = 3 3.1 = 4 3.2 = 4 3.3 = 4 3.4 = 4 3.5 = 4 3.6 = 4 3.7 = 4 3.
我使用过这样的代码:http://msdn.microsoft.com/en-us/library/dw70f090.aspx在 ASP.NET 中工作之前访问数据库(2-3 年前)。我没有意识到我正
自 ConfigurationManager .NET Standard 中不存在,检索正在执行的程序集的应用程序设置的最佳方法是什么,无论是 web.config或 appSettings.{env
我是一名优秀的程序员,十分优秀!