在我的 web api 中,当我运行项目以从数据库获取数据时出现此错误 .net core 3.1
JsonException: 检测到不支持的可能的对象循环。这可能是由于循环或对象深度大于最大允许深度 32。
这些是我的代码我的模型
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string ProductText { get; set; }
public int ProductCategoryId { get; set; }
[JsonIgnore]
public virtual ProductCategory ProductCategory { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的 productCategory 类是:
public class ProductCategory
{
public int Id { get; set; }
public string Name { get; set; }
public string CatText { get; set; …Run Code Online (Sandbox Code Playgroud) 我尝试使用存储库模式从我的数据库中获取数据我有 3 个项目
Bmu.Mode '这是用于创建数据库的模型'
Bmu.Repo '它有 2 个文件夹用于存储库,包括 contract/InewsRepository.cs' 和用于实现接口的 'Repository/NewsRepository'
Bmu.Api 用于从 Repo 项目调用数据
模型项目中的新闻类
namespace bmu.model
{
public class News
{
public int Id { get; set; }
public string SubTitle { get; set; }
public string Title { get; set; }
public string Summery { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
模型项目中的上下文类
namespace bmu.model
{
public class BmuContext : DbContext
{
public BmuContext(DbContextOptions<BmuContext> options): base(options)
{
}
public DbSet<News> News { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我在 …
c# repository repository-pattern asp.net-core-mvc asp.net-core-3.0
我使用微软将我的 MVC 核心项目从 2.2 升级到 3.0
并更改此处推荐的许多内容:https : //stackoverflow.com/
在本地运行它时它工作正常,但是当我想在本地文件夹中发布时,我收到此错误:
资产文件“obj\project.assets.json”没有“.NETCoreApp,Version=v2.2”的目标。确保恢复已运行并且您已在项目的 TargetFrameworks 中包含“netcoreapp2.2”
我有 3 个项目,它们都升级到 MVC 核心 3.0 也将所有包升级到 3.0 还删除对象文件夹和 bin 文件夹并再次构建项目,关闭 VS 并再次打开它,但错误仍然存在。
更新: mvc 项目 csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<!--<PackageReference Include="Microsoft.AspNetCore.App" />-->
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0"
/>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design"
Version="3.0.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Areas\Admin\Data\" />
<Folder Include="Areas\Admin\Models\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\project.Model\project.Model.csproj" />
<ProjectReference Include="..\project.Repo\project.Repo.csproj" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我的project.Model.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference
Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" />
<PackageReference …Run Code Online (Sandbox Code Playgroud) 我将具有 2 个类库和一个 Mvc 项目的项目从 2.2 升级到 MVC Core 3.0 \n在本页 \n在此处输入链接描述
\n\n改变.net <TargetFramework>netcoreapp3.0</TargetFramework>
2.这样改
\n\n<ItemGroup>\n<!--<PackageReference Include="Microsoft.AspNetCore.App" />-->\n<!--<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.2.0" />-->\n<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" />\n<!--<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />-->\n<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" />\n</ItemGroup>
3.我的satrtup.cs
\n\n`
\n app.UseHttpsRedirection();\n app.UseStaticFiles();\n app.UseDefaultFiles();\n app.UseCookiePolicy();
app.UseRouting();\n\n app.UseAuthorization();\n\n app.UseEndpoints(endpoints =>\n {\n endpoints.MapRazorPages();\n });`\nRun Code Online (Sandbox Code Playgroud)我的程序.cs
\n\npublic static void Main(string[] args)\n {\n CreateHostBuilder(args).Build().Run();\n }\n public static IHostBuilder CreateHostBuilder(string[] args) =>\n Host.CreateDefaultBuilder (args)\n .ConfigureWebHostDefaults(webBuilder =>\n {\n webBuilder.UseStartup();\n });
但是当我运行我的项目时出现此错误 …