我正在努力从一个表对象中提取一个简单的记录列表并将它们打印出来。
我有一个名为Acceptance的表,它有四个字段,其中两个字段允许为空。以下是模式对象的ddl:
CREATE TABLE [dbo].[Acceptance](
[AcceptanceID] [int] IDENTITY(1,1) NOT NULL,
[AcceptanceCode] [nvarchar](2) NOT NULL,
[AcceptanceDesc] [varchar](25) NOT NULL,
[SortOrder] [tinyint] NOT NULL,
CONSTRAINT [PK_Acceptance] PRIMARY KEY CLUSTERED
(
[AcceptanceID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]当我尝试使用以下代码向控制台呈现单个记录的单个字段时:
var a = Acceptance.All();
Console.WriteLine(a.First().AcceptanceID);
Console.Read();我得到了以下异常:
System.ArgumentException未处理Message=“类型为'System.Byte‘的对象无法转换为类型’System.Boolean‘。”
我的字段都不是Bit/Boolean类型。我只是不明白..。
可空类型和Linq查询语法是我正在努力解决的两个主题……
任何关于如何正确地做到这一点的见解都是非常值得赞赏的。
谢谢,
乔希
发布于 2009-08-15 08:20:55
您使用的是什么数据库?我来猜猜MySQL..。您可以进入T4s并更改定义系统类型的方式。默认模板为SQLServer.tt,其MySQL.tt为MySQL。只需查找我们设置tinyint的位置-这是一个正在进行的问题(至少对我来说),返回byte[] vs bool -根据需要设置。
发布于 2009-08-16 11:15:36
您是否可以使用SQL Server Migration Assistant 2005进行访问?默认情况下,迁移向导将时间戳列添加到数据类型为“timestamp”的所有表中。我记得此字段导致的异常与您在使用SubSonic 3时报告的异常相似(如果不是相同的话)。您可以通过工具>默认项目设置>添加时间戳列>从不禁用时间戳列的创建。
发布于 2009-09-30 01:47:51
我也收到了这个错误,上面的修复没有修复我的问题,但是GitHub的最新版本解决了这个问题。
我希望很快会有一个发行版来解决所有这些问题。
https://stackoverflow.com/questions/1280700
复制相似问题