【发布时间】:2014-03-13 20:50:56
【问题描述】:
我正在使用实体框架 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();
.
【问题讨论】:
-
我不禁要问,为什么你的模型以字符串属性开头???
-
数据仅供展示。我只是想把它扔掉。
-
如果要显示值,请在 UI 级别使用格式设置。不要让您的模型符合您的显示要求,恕我直言,这是错误的。
-
我想您可以创建视图并将其中的字段值转换为 varchars,然后让您的模型指向这些视图。
-
您是否将字符串传递给
int Id?
标签: c# sql entity-framework