无法将int转换为Entity Framework 6中的对象,但是当我使用Linq转换为SQL时,它可以工作

问题描述 投票:0回答:1

我尝试在EF 6的select语句中将int强制转换为object,但会引发错误:

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();
}

Notex.Idint

我的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上使用对象数据类型。谁能帮我吗?

谢谢:)

casting linq-to-sql entity-framework-6
1个回答
0
投票

您可以在整数上使用ToString(),因为将其设置为object时将起作用。

var result = db.User.Select(x => new TextBoxSearchModel { Value = x.Id.ToString(), }).ToList();
© www.soinside.com 2019 - 2024. All rights reserved.