В нашей базе данных SQL Server у нас есть таблица с этим макетом: < /p>
Код: Выделить всё
public partial class Measurement
{
public int Measurements_PK { get; set; }
public object? Value { get; set; }
public String Name_UQ { get; set; }
public string DataType { get; set; } = null!;
}
Определение значения SQL - это [значение] [SQL_VARIANT] NULL , а определение модели - это entity.property (e => e.value) .hascolumntype ("sql_variant"); . Обычно мы запустим запрос в поисках конкретного измерения для некоторой конкретной записи или группы записей: < /p>
Код: Выделить всё
select *
from Measurement
where Name_UQ = 'someMeasurementName'
and Value = 12345
Когда я попытался сделать это в EF Core, я сталкиваюсь с проблемой, где C# ожидает очень специфического типа, и если я пытаюсь внедрить этот тип в коде C#, полученный SQL, который генерирует EF -ядро, будет пытаться отменить каждую ценность вместо того, что с name_uq я хочу, чтобы в SQLEXCECTERE (Int32)a.Value == unitid)
.ToList();
< /code>
Для ясности, "A" вот просто анонимный тип. < /p>
Как я могу выполнить эту операцию в EF Core? Это с VS22 17.13.6, Windows 11, C#, EF Core 9.0.4 против SQL Server 2019 15.0.4415.2 (x64).
Подробнее здесь:
https://stackoverflow.com/questions/796 ... ted-column