gpt4 book ai didi

c# - 从具体化 'System.Int32' 类型到 'System.String' 类型的指定转换无效

转载 作者:行者123 更新时间:2023-11-30 15:30:17 26 4
gpt4 key购买 nike

我正在使用 Entity Framework 6.0.2;在出现此错误之前,我使用的是以前的版本。

基本上,我使用“字符串”属性设置我的模型并执行查询或存储过程并将结果转储为字符串,这一直有效。

任何想法如何解决?也许我可以使用“约定”进行转换?

例如:

SQL:
select ROW_NUMBER() OVER (ORDER BY (select Null)) AS Id, '0', 'Test0', 'some kind of data', 'Test1', 'possibly a datetime type', 'Test2'

C#:
public class SomeModel
{
public int Id { get; set; }
public string Test0 { get; set; }
public string Test1 { get; set; }
public string Test2 { get; set; }
}

Invalid Operation Exception:
var records = dbContext.Database.SqlQuery<SomeModel>("select ROW_NUMBER() OVER (ORDER BY (select Null)) AS Id, '0', 'Test0', 'some kind of data', 'Test1', 'possibly a datetime type', 'Test2'").ToList();

.

最佳答案

即使这一年没有答案。根据@Crono 上面所说的评论,我有自己的答案要提供。

基本上,问题是数据类型。为了将 SQL 结果集绑定(bind)到模型, Entity Framework 必须将数据类型从 SQL 转换为 .NET。

好吧,在 .NET 中,我希望所有内容都以字符串的形式返回,因为要检索的数据根本不是要对其进行操作,而是将其显示到网页或文件中。

需要更新查询以将所有结果列转换为 varchar。 @Crono 在上面的评论中很好地解释了这一点。 View 对我不起作用,因为数据/结果未知。

编辑 2016 年 7 月 2 日

转换你的值(value)观!

select Cast(ROW_NUMBER() OVER (ORDER BY (select Null)) AS Id as int), Cast('0' as varchar(255)), Cast('Test0' as varchar(255)), Cast('some kind of data' as varchar(255)), Cast('Test1' as varchar(255)), Cast('possibly a datetime type' as varchar(255)), Cast('Test2' as varchar(255))

关于c# - 从具体化 'System.Int32' 类型到 'System.String' 类型的指定转换无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com