Когда я пытаюсь зарегистрировать пользователя, использующего mongodb ef-core, я получаю ошибку, говоря, что он не может переводить .toclaim () ниже приведен мой код < /p>
public class AdditionalClaims : UserClaimsPrincipalFactory
{
private readonly ApplicationDbContext _dbContext; // this is mongo-efcore-provider
public AdditionalClaims(
UserManager userManager,
IOptions optionsAccessor,
ApplicationDbContext dbContext)
: base(userManager, optionsAccessor)
{
_dbContext = dbContext;
}
public override async Task CreateAsync(User user)
{
var principal = await base.CreateAsync(user); // error happens here
if (principal.Identity is ClaimsIdentity claimsIdentity)
{
claimsIdentity.AddClaim(
new Claim("UserId", user.Id ?? string.Empty));
if (!string.IsNullOrEmpty(user.ImageHash)) // adding the profile picture in the claims
{
claimsIdentity.AddClaim(
new Claim("ImageHash", user.ImageHash));
}
}
return principal;
}
< /code>
Я использую шаблон аутентификации по умолчанию, который я использую с помощью Visual Studio, моя цель - добавить хэш изображения профиля пользователя в претензиях, чтобы нам не понадобились дополнительные хиты базы данных, когда я хочу Покажите изображение профиля < /p>
ниже всего исключения < /p>
MongoDB.Driver.Linq.ExpressionNotSupportedException: Expression not supported: i.ToClaim().
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodCallExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, MethodCallExpression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, Expression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(TranslationContext context, LambdaExpression lambdaExpression, Symbol parameterSymbol)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(TranslationContext context, LambdaExpression lambdaExpression, IBsonSerializer parameterSerializer, Boolean asRoot)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.SelectMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExpressionToExecutableQueryTranslator.Translate[TDocument,TOutput](MongoQueryProvider`1 provider, Expression expression, ExpressionTranslationOptions translationOptions)
at MongoDB.Driver.Linq.Linq3Implementation.MongoQuery`2.Execute()
at MongoDB.Driver.Linq.Linq3Implementation.MongoQuery`2.GetEnumerator()
at MongoDB.EntityFrameworkCore.Query.QueryingEnumerable`2.Enumerator.MoveNextHelper()
at MongoDB.EntityFrameworkCore.Query.QueryingEnumerable`2.Enumerator.MoveNextAsync()
at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore`6.GetClaimsAsync(TUser user, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Identity.UserManager`1.GetClaimsAsync(TUser user)
at Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory`1.GenerateClaimsAsync(TUser user)
at Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory`1.CreateAsync(TUser user)
at bankin.Data.AdditionalClaims.CreateAsync(User user) in E:\Work\bank-app\Data\AdditionalClaims.cs:line 25
Подробнее здесь: https://stackoverflow.com/questions/794 ... upported-i
Mongodb.driver.linq.expressionNotsUpportedException: выражение не поддерживается: i.toclaim () ⇐ C#
Место общения программистов C#
1738242425
Anonymous
Когда я пытаюсь зарегистрировать пользователя, использующего mongodb ef-core, я получаю ошибку, говоря, что он не может переводить .toclaim () ниже приведен мой код < /p>
public class AdditionalClaims : UserClaimsPrincipalFactory
{
private readonly ApplicationDbContext _dbContext; // this is mongo-efcore-provider
public AdditionalClaims(
UserManager userManager,
IOptions optionsAccessor,
ApplicationDbContext dbContext)
: base(userManager, optionsAccessor)
{
_dbContext = dbContext;
}
public override async Task CreateAsync(User user)
{
var principal = await base.CreateAsync(user); // error happens here
if (principal.Identity is ClaimsIdentity claimsIdentity)
{
claimsIdentity.AddClaim(
new Claim("UserId", user.Id ?? string.Empty));
if (!string.IsNullOrEmpty(user.ImageHash)) // adding the profile picture in the claims
{
claimsIdentity.AddClaim(
new Claim("ImageHash", user.ImageHash));
}
}
return principal;
}
< /code>
Я использую шаблон аутентификации по умолчанию, который я использую с помощью Visual Studio, моя цель - добавить хэш изображения профиля пользователя в претензиях, чтобы нам не понадобились дополнительные хиты базы данных, когда я хочу Покажите изображение профиля < /p>
ниже всего исключения < /p>
MongoDB.Driver.Linq.ExpressionNotSupportedException: Expression not supported: i.ToClaim().
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.MethodCallExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, MethodCallExpression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, Expression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(TranslationContext context, LambdaExpression lambdaExpression, Symbol parameterSymbol)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.TranslateLambdaBody(TranslationContext context, LambdaExpression lambdaExpression, IBsonSerializer parameterSerializer, Boolean asRoot)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.SelectMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)
at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExpressionToExecutableQueryTranslator.Translate[TDocument,TOutput](MongoQueryProvider`1 provider, Expression expression, ExpressionTranslationOptions translationOptions)
at MongoDB.Driver.Linq.Linq3Implementation.MongoQuery`2.Execute()
at MongoDB.Driver.Linq.Linq3Implementation.MongoQuery`2.GetEnumerator()
at MongoDB.EntityFrameworkCore.Query.QueryingEnumerable`2.Enumerator.MoveNextHelper()
at MongoDB.EntityFrameworkCore.Query.QueryingEnumerable`2.Enumerator.MoveNextAsync()
at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.Enumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable`1 source, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserOnlyStore`6.GetClaimsAsync(TUser user, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Identity.UserManager`1.GetClaimsAsync(TUser user)
at Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory`1.GenerateClaimsAsync(TUser user)
at Microsoft.AspNetCore.Identity.UserClaimsPrincipalFactory`1.CreateAsync(TUser user)
at bankin.Data.AdditionalClaims.CreateAsync(User user) in E:\Work\bank-app\Data\AdditionalClaims.cs:line 25
Подробнее здесь: [url]https://stackoverflow.com/questions/79400013/mongodb-driver-linq-expressionnotsupportedexception-expression-not-supported-i[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия