Есть идеи, что я делаю неправильно, или это просто ошибка в библиотеке?
Я использую MySql.EntityFrameworkCore версии 10.0.0-rc и пытаюсь выполнить следующий запрос:
var list = new List { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
var arr = list.ToArray();
var enumerable = list.AsEnumerable();
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder
.UseMySQL(gemasConnectionString);
using var context = new MyDbContext(optionsBuilder.Options);
var query = context.MyTable
.Where(x => x.Plz != null && arr.Contains(x.Plz));
var result = await query.ToListAsync();
I tryed this with list, array or enumerable but have the same result.
Определение таблицы:
CREATE TABLE IF NOT EXISTS `MyTable` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`A` int(10) DEFAULT '0',
`B` varchar(10) DEFAULT NULL,
`C` varchar(50) DEFAULT NULL,
`D` varchar(50) DEFAULT NULL,
`E` int(10) DEFAULT '0',
`F` varchar(10) DEFAULT NULL,
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`PLZ` varchar(10) DEFAULT NULL,
`Nr` int(10) DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `PLZ` (`PLZ`)
) ENGINE=InnoDB AUTO_INCREMENT=789 DEFAULT CHARSET=utf8;
Сущность:
public partial class MyTable
{
public int Id { get; set; }
public int? A { get; set; }
public string? B { get; set; }
public string? C { get; set; }
public string? D { get; set; }
public int? E { get; set; }
public string? F { get; set; }
public DateTime Ts { get; set; }
public string? Plz { get; set; }
public int? Nr { get; set; }
}
Исключение:
System.InvalidOperationException
HResult=0x80131509
Message=Expression '@list' in the SQL tree does not have a type mapping assigned.
Source=Microsoft.EntityFrameworkCore.Relational
StackTrace:
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlBinaryExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.Process(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalQueryTranslationPostprocessor.ProcessTypeMappings(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalQueryTranslationPostprocessor.Process(Expression query)
at MySql.EntityFrameworkCore.Query.Internal.MySQLQueryTranslationPostprocessor.Process(Expression query)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.c__DisplayClass11_0`1.b__0()
at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteCore[TResult](Expression query, Boolean async, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetAsyncEnumerator(CancellationToken cancellationToken)
at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.d__67`1.MoveNext()
at Program.d__1.MoveNext() in C\...\Program.cs:line 80
Подробнее здесь: https://stackoverflow.com/questions/798 ... not-have-a
Ошибка при создании строки запроса: выражению «@list» в дереве SQL не назначено сопоставление типов. ⇐ MySql
Форум по Mysql
1766567312
Anonymous
Есть идеи, что я делаю неправильно, или это просто ошибка в библиотеке?
Я использую MySql.EntityFrameworkCore версии 10.0.0-rc и пытаюсь выполнить следующий запрос:
var list = new List { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
var arr = list.ToArray();
var enumerable = list.AsEnumerable();
var optionsBuilder = new DbContextOptionsBuilder();
optionsBuilder
.UseMySQL(gemasConnectionString);
using var context = new MyDbContext(optionsBuilder.Options);
var query = context.MyTable
.Where(x => x.Plz != null && arr.Contains(x.Plz));
var result = await query.ToListAsync();
I tryed this with list, array or enumerable but have the same result.
Определение таблицы:
CREATE TABLE IF NOT EXISTS `MyTable` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`A` int(10) DEFAULT '0',
`B` varchar(10) DEFAULT NULL,
`C` varchar(50) DEFAULT NULL,
`D` varchar(50) DEFAULT NULL,
`E` int(10) DEFAULT '0',
`F` varchar(10) DEFAULT NULL,
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`PLZ` varchar(10) DEFAULT NULL,
`Nr` int(10) DEFAULT '0',
PRIMARY KEY (`ID`),
KEY `PLZ` (`PLZ`)
) ENGINE=InnoDB AUTO_INCREMENT=789 DEFAULT CHARSET=utf8;
Сущность:
public partial class MyTable
{
public int Id { get; set; }
public int? A { get; set; }
public string? B { get; set; }
public string? C { get; set; }
public string? D { get; set; }
public int? E { get; set; }
public string? F { get; set; }
public DateTime Ts { get; set; }
public string? Plz { get; set; }
public int? Nr { get; set; }
}
Исключение:
System.InvalidOperationException
HResult=0x80131509
Message=Expression '@list' in the SQL tree does not have a type mapping assigned.
Source=Microsoft.EntityFrameworkCore.Relational
StackTrace:
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.InExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SqlBinaryExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.VisitExtension(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalTypeMappingPostprocessor.Process(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalQueryTranslationPostprocessor.ProcessTypeMappings(Expression expression)
at Microsoft.EntityFrameworkCore.Query.RelationalQueryTranslationPostprocessor.Process(Expression query)
at MySql.EntityFrameworkCore.Query.Internal.MySQLQueryTranslationPostprocessor.Process(Expression query)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.c__DisplayClass11_0`1.b__0()
at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteCore[TResult](Expression query, Boolean async, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](Expression query, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](Expression expression, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.GetAsyncEnumerator(CancellationToken cancellationToken)
at System.Runtime.CompilerServices.ConfiguredCancelableAsyncEnumerable`1.GetAsyncEnumerator()
at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.d__67`1.MoveNext()
at Program.d__1.MoveNext() in C\...\Program.cs:line 80
Подробнее здесь: [url]https://stackoverflow.com/questions/79854240/error-creating-query-string-expression-list-in-the-sql-tree-does-not-have-a[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия