- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 .NET v5.0.100-preview.8.20417.9、ASP.NET Core Web API 5、Microsoft SQL Server 2019、Entity Framework Core v5.0.0-preview.8.20414.8。
数据库
CREATE TABLE [dbo].[AspNetUsers]
(
[Id] [nvarchar](450) NOT NULL,
[UserName] [nvarchar](256) NULL,
[NormalizedUserName] [nvarchar](256) NULL,
[Email] [nvarchar](256) NULL,
[NormalizedEmail] [nvarchar](256) NULL,
[EmailConfirmed] [bit] NOT NULL,
[PasswordHash] [nvarchar](max) NULL,
[SecurityStamp] [nvarchar](max) NULL,
[ConcurrencyStamp] [nvarchar](max) NULL,
[PhoneNumber] [nvarchar](max) NULL,
[PhoneNumberConfirmed] [bit] NOT NULL,
[TwoFactorEnabled] [bit] NOT NULL,
[LockoutEnd] [datetimeoffset](7) NULL,
[LockoutEnabled] [bit] NOT NULL,
[AccessFailedCount] [int] NOT NULL,
[Fullname] [nvarchar](max) NULL,
[AliasName] [nvarchar](max) NULL,
[SecondMobile] [nvarchar](max) NULL,
[About] [nvarchar](max) NULL,
[Created] [datetime2](7) NULL,
[Modified] [datetime2](7) NULL,
CONSTRAINT [PK_AspNetUsers]
PRIMARY KEY CLUSTERED ([Id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[trusted_person]
(
[id] [int] IDENTITY(1,1) NOT NULL,
[fullname] [nvarchar](512) NULL,
[alias_name] [nvarchar](512) NULL,
[email] [nvarchar](512) NULL,
[phone_number1] [nvarchar](50) NULL,
[phone_number2] [nvarchar](50) NULL,
[phone_number3] [nvarchar](50) NULL,
[relationship_id] [int] NULL,
[about] [nvarchar](max) NOT NULL,
[avatar_id] [int] NULL,
[created] [datetime] NULL,
[modified] [datetime] NULL,
CONSTRAINT [PK_trusted_person]
PRIMARY KEY CLUSTERED ([id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
CREATE TABLE [dbo].[user_trusted_person]
(
[user_id] [nvarchar](450) NOT NULL,
[trusted_person_id] [int] NOT NULL,
CONSTRAINT [PK_user_trusted_person]
PRIMARY KEY CLUSTERED ([user_id] ASC, [trusted_person_id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT INTO [dbo].[AspNetUsers] ([Id], [UserName], [NormalizedUserName], [Email], [NormalizedEmail], [EmailConfirmed], [PasswordHash], [SecurityStamp], [ConcurrencyStamp], [PhoneNumber], [PhoneNumberConfirmed], [TwoFactorEnabled], [LockoutEnd], [LockoutEnabled], [AccessFailedCount], [Fullname], [AliasName], [SecondMobile], [About], [Created], [Modified])
VALUES (N'4485e86d-3c2f-484f-a0b1-29e9c895bf9d', N'hanp2@example.io', N'HANP2@example.io', N'hanp2@example.io', N'HANP2@EXAMPLE.IO', 1, N'AQAAAAEAACcQAAAAELjSfhhpWmlwHb6fwrw9F/6DXQntlZMMcBMLDeiq1Ekkwf7V0IE76Bm7HoHwXUGUNA==', N'GTNEDRSWMSTHAGZVL4N7HOEHECUX3KC5', N'49bc54f6-217a-43f2-872e-b39e0453b90b', N'0909878767', 0, 0, NULL, 1, 0, N'Nguyễn Phương Hà2', N'HaNP2', N'0123456765', N'PGĐ kỹ thuật', CAST(N'2020-09-10T09:36:48.9768760' AS DateTime2), CAST(N'2020-09-10T09:36:48.9771728' AS DateTime2))
GO
INSERT INTO [dbo].[AspNetUsers] ([Id], [UserName], [NormalizedUserName], [Email], [NormalizedEmail], [EmailConfirmed], [PasswordHash], [SecurityStamp], [ConcurrencyStamp], [PhoneNumber], [PhoneNumberConfirmed], [TwoFactorEnabled], [LockoutEnd], [LockoutEnabled], [AccessFailedCount], [Fullname], [AliasName], [SecondMobile], [About], [Created], [Modified])
VALUES (N'8ec8b490-bc7d-4468-af7f-9870ccd72981', N'tinlh@example.io', N'TINLH@example.io', N'tinlh@example.io', N'TINLH@EXAMPLE.IO', 0, N'AQAAAAEAACcQAAAAEMN05q50vK31c5v+GBm4JK9YdXXSDnugtplgn+o2u/eU2vJLNOyMl1t7EyENK5BGPQ==', N'3IIN7JKN5XCKPE7POFWFNHLZNHK7ZDKD', N'0559b9ec-9998-4183-84af-224aec4e1d12', NULL, 0, 0, NULL, 1, 0, NULL, NULL, NULL, N'Front-end developer', CAST(N'2020-09-10T08:22:30.1337889' AS DateTime2), CAST(N'2020-09-10T08:22:30.1352528' AS DateTime2))
GO
INSERT INTO [dbo].[AspNetUsers] ([Id], [UserName], [NormalizedUserName], [Email], [NormalizedEmail], [EmailConfirmed], [PasswordHash], [SecurityStamp], [ConcurrencyStamp], [PhoneNumber], [PhoneNumberConfirmed], [TwoFactorEnabled], [LockoutEnd], [LockoutEnabled], [AccessFailedCount], [Fullname], [AliasName], [SecondMobile], [About], [Created], [Modified])
VALUES (N'a9e23763-8285-4d4b-b466-e1d5d9287e43', N'hanp@example.io', N'HANP@example.io', N'hanp@example.io', N'HANP@EXAMPLE.IO', 1, N'AQAAAAEAACcQAAAAECIiSI1XQ9kL+8/RIS+ztOU5sU+J2KKFyODpoJPzfD9xL6r3H10WNhi/VITbv2mtfA==', N'QDOW7EB5XF6CIQZ4H4JBRRLSANIIGTHR', N'7eed1e98-ea18-4f4b-b017-c428adc2da73', N'0909878767', 0, 0, NULL, 1, 0, N'Nguyễn Phương Hà', N'HaNP', N'0123456765', N'PGĐ kỹ thuật', CAST(N'2020-09-09T16:38:37.7443193' AS DateTime2), CAST(N'2020-09-09T16:38:37.7444016' AS DateTime2))
GO
SET IDENTITY_INSERT [dbo].[trusted_person] ON
GO
INSERT INTO [dbo].[trusted_person] ([id], [fullname], [alias_name], [email], [phone_number1], [phone_number2], [phone_number3], [relationship_id], [about], [avatar_id], [created], [modified])
VALUES (2, N'Nguyễn Thanh Vân', N'Thanh Vân', N'thanhvan@yahoo.com', N'0989873776', N'0989872777', N'0989876778', 3, N'Nguyen Van', 42, CAST(N'2020-09-10T09:32:07.443' AS DateTime), NULL)
GO
INSERT INTO [dbo].[trusted_person] ([id], [fullname], [alias_name], [email], [phone_number1], [phone_number2], [phone_number3], [relationship_id], [about], [avatar_id], [created], [modified])
VALUES (3, N'Nguyen Van An', N'An', N'ductx@example.io', N'0987656545', N'0987656546', N'0987656547', 1, N'abc', 1, CAST(N'2020-09-10T14:38:15.130' AS DateTime), NULL)
GO
SET IDENTITY_INSERT [dbo].[trusted_person] OFF
GO
INSERT [dbo].[user_trusted_person] ([user_id], [trusted_person_id]) VALUES (N'4485e86d-3c2f-484f-a0b1-29e9c895bf9d', 3)
GO
在SQL Server Management Studio中查询成功,返回1条记录。
SELECT *
FROM trusted_person t
LEFT JOIN user_trusted_person u ON u.trusted_person_id = t.id
LEFT JOIN AspNetUsers a ON a.Id = u.user_id
WHERE a.Id = '4485e86d-3c2f-484f-a0b1-29e9c895bf9d';
C#代码:
using System;
#nullable disable
namespace shadow.Models
{
public partial class TrustedPerson
{
public int Id { get; set; }
public string Fullname { get; set; }
public string AliasName { get; set; }
public string Email { get; set; }
public string PhoneNumber1 { get; set; }
public string PhoneNumber2 { get; set; }
public string PhoneNumber3 { get; set; }
public int? RelationshipId { get; set; }
public string About { get; set; }
public int? AvatarId { get; set; }
public DateTime? Created { get; set; }
public DateTime? Modified { get; set; }
}
}
DbContext
有 TrustedPeople
- TrustedPerson
的复数形式
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using shadow.Models;
namespace shadow.Data
{
public partial class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
{
}
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public virtual DbSet<ApplicationUser> ApplicationUsers { get; set; }
public virtual DbSet<PaymentRequest> PaymentRequest { get; set; }
public virtual DbSet<TrustedPerson> TrustedPeople { get; set; }
//SELECT* FROM trusted_person t
//LEFT JOIN user_trusted_person u ON u.trusted_person_id = t.id
//LEFT JOIN AspNetUsers a ON a.Id = u.user_id
//WHERE a.Id = '4485e86d-3c2f-484f-a0b1-29e9c895bf9d';
[HttpGet]
[Route("user")]
public async Task<ActionResult<IEnumerable<TrustedPerson>>> GetAllTrustedPersonsByUserId(string UserId)
{
var items = _db.TrustedPeople
.FromSqlRaw("" +
" SELECT * FROM trusted_person t " +
" LEFT JOIN user_trusted_person u ON u.trusted_person_id = t.id " +
" LEFT JOIN AspNetUsers a ON a.Id = u.user_id " +
" WHERE a.Id = '{0}'", UserId)
.ToList();
return Ok(items);
}
错误
System.ArgumentException: An item with the same key has already been added. Key: Id
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
at Microsoft.EntityFrameworkCore.Query.Internal.FromSqlQueryingEnumerable`1.BuildIndexMap(IReadOnlyList`1 columnNames, DbDataReader dataReader)
at Microsoft.EntityFrameworkCore.Query.Internal.FromSqlQueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
at Microsoft.EntityFrameworkCore.Query.Internal.FromSqlQueryingEnumerable`1.Enumerator.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at shadow.Controllers.UserTrustedPersonController.GetAllTrustedPersonsByUserId(String UserId) in D:\shadow_backend\Controllers\UserTrustedPersonController.cs:line 77
at lambda_method9(Closure , Object )
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
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()
--- End of stack trace from previous location ---
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.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
HEADERS
=======
Cache-Control: no-cache
Connection: keep-alive
Accept: */*
Accept-Encoding: gzip, deflate, br
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6InRpbmxoQG1wc29sdXRpb25zLmlvIiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIyODI1MTVmZi00ODljLTRmOWMtODQ4Ny1hNzcyZDcyYzMxMDkiLCJleHAiOjE2MDIzMTQ5MzMsImlzcyI6Imh0dHA6Ly9tcHNvbHV0aW9ucy5pbyIsImF1ZCI6Imh0dHA6Ly9tcHNvbHV0aW9ucy5pbyJ9.l0_PH63k05RpjH6lEj7TJWHW0wP8VuhtfWugzs1jjhg
Host: localhost:5002
User-Agent: PostmanRuntime/7.26.5
Postman-Token: 3ecd1393-9865-4e80-93f9-d0f707ee2ad7
如何解决?
最佳答案
出现此错误是因为您查询返回许多名称为“id”的列。
尝试将 select *
替换为 select t.*
。
[HttpGet]
[Route("user")]
public async Task<ActionResult<IEnumerable<TrustedPerson>>> GetAllTrustedPersonsByUserId(string UserId)
{
var items = _db.TrustedPeople
.FromSqlRaw("" +
" SELECT t.* FROM trusted_person t " +
" LEFT JOIN user_trusted_person u ON u.trusted_person_id = t.id " +
" LEFT JOIN AspNetUsers a ON a.Id = u.user_id " +
" WHERE a.Id = {0}", UserId)
.ToList();
return Ok(items);
}
注意:"WHERE a.Id = {0}", UserId)
,而不是 "WHERE a.Id = '{0}'", UserId)
关于c# - Entity Framework Core 原始 SQL 错误 : System. ArgumentException 已添加具有相同键的项目。关键:身份证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63825636/
主要思想是将 EF Core nuget 包添加到 .NET Core 库项目,然后在一堆应用程序(例如 ASP.NET Core、Win 服务、控制台应用程序)中使用该库,而无需在每个应用程序中配置
我想要实现的是编写一个简单的.net核心后台工作程序(.net core 3.1)的代码,在该工作程序作为Windows服务运行时,我在其中将数据写入SQL Server数据库(通过EF Core 3
关于 .Net Core SDK download page 二进制文件有什么用?它与安装程序有何不同? 最佳答案 二进制文件是 .NET Core 的编译代码。它们拥有运行 .NET Core 所需
.NET Core 和 Entity Framework Core 之间的区别?我们可以在 .NET Core 中使用 Entity Framework Core 吗?两者都有什么优势? 最佳答案 E
.NET Core 和 ASP.NET Core 到底有什么区别? 它们是相互排斥的吗?我听说 ASP.NET Core 是基于 .NET Core 构建的,但它也可以基于完整的 .NET 框架构建。
我对 ASP.NET Core 开发完全陌生。我正在尝试使用单个模型和 mysql 创建一个简单的 asp.net core Web api 来存储模型数据,然后我想使用 Swagger 将其作为 R
.NET Core 和 Entity Framework Core 之间的区别?我们可以在 .NET Core 中使用 Entity Framework Core 吗?两者都有什么优势? 最佳答案 E
好吧,作为一个新的 .net 开发生态系统,我有点迷失在核心工具、版本等方面。 有人可以解释我之间的区别吗 VS 2015 核心工具预览版 x - See here .NET Core/SDK 与否
我已阅读有关如何通过信号器核心集线器从后台服务向客户端发送通知的文档。如何从客户端接收到后台服务的通知? 后台服务应该只是一个单例。 public class Startup { public
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4年前关闭。 Improve t
非常简单的问题: 我正在尝试创建一个像这样的谓词构建器: var predicate = PredicateBuilder.False(); 但似乎在Net Core和EF Core中不可用。
在 .NET Core 自包含应用程序 中...我们需要在 project.json 中指定运行时 (RID) 我们希望我们的应用程序针对...发布为什么会这样? .NET Core 是跨平台的,与我
如何用 iCloud Core Data 替换我现有的 Core Data?这是我的持久商店协调员: lazy var persistentStoreCoordinator: NSPersistent
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 2 年前。 Improv
今天我正在学习新的 ASP.net 核心 API 3.1,我想将我的旧网站从 MVC4 转移到 Web API。除了一件事,一切都很好。数据库连接。在我的旧网站中,我为每个客户端(10/15 数据库)
我在 Visual Studio 2015 Update 3 和 .NET Core 1.0 中工作。我有一个 .NETCoreApp v1.0 类型的 Web API 项目。当我添加一个 .NET
我一直在尝试遵循 Ben Cull ( http://benjii.me/2016/06/entity-framework-core-migrations-for-class-library-proj
当我打开我的 vs 代码程序时,我收到以下消息: 无法找到 .NET Core SDK。 .NET Core 调试将不会启用。确保 .NET Core SDK 已安装并且在路径上。 如果我安装甚至卸载
我偶然发现了一个非常奇怪的问题。每当 Web 应用程序启动时,dotnet.exe 都会使用相当多的内存(大约 300M)。然而,当它触及某些部分时(我感觉这与 EF Core 使用有关),它会在短时
ASP.NET Core Web (.NET Core) 与 ASP.NET Core Web (.NET Framework) 有什么区别? .NET Framework 是否提供 similar
我是一名优秀的程序员,十分优秀!