Не могу привести int к объекту в Entity Framework 6. Но когда я использую Linq для SQL, это работает - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь привести int к object в операторе выбора в EF 6, но выдает ошибку:

System.NotSupportedException: 'Невозможно привести тип' System.Int32 ' набрать 'System.Object'. LINQ to Entities поддерживает только приведение типов примитивов и перечислений EDM. '

Мой код:

public void Test()
{
        var db = new LogicStoreDbContext();

        var result = db.User.Select(x => new TextBoxSearchModel
                                             { Value = x.Id, }).ToList();
}

Примечание : x.Id равно int

И мой TextBoxSearchModel класс:

public class TextBoxSearchModel
{
    public object Value { get; set; }
    public string DisplayText { get; set; } = string.Empty;
    public string NextColumn1 { get; set; }
    public string NextColumn2 { get; set; }
    public string NextColumn3 { get; set; }
    public string NextColumn4 { get; set; }
    public string NextColumn5 { get; set; }
    public object Object { get; set; }
}

Мне действительно нужен тип данных объекта для моего свойства Value. Кто-нибудь может мне помочь?

Спасибо:)

1 Ответ

0 голосов
/ 19 февраля 2020

Вы можете использовать ToString () для целого числа, так как оно будет работать при установке его для объекта.

var result = db.User.Select(x => new TextBoxSearchModel { Value = x.Id.ToString(), }).ToList();
...