【发布时间】:2009-10-28 03:06:31
【问题描述】:
带方法参数
Int16? id
Linq to SQL where 子句
where !id.HasValue || m.Id == id
数据上下文中条件的结果命令文本是
来自可视化器:
SELECT [t0].[Id], [t0].[Name], [t0].[IsActive]
FROM [Model] AS [t0]
WHERE (CONVERT(Int,[t0].[Id])) = @p0
-------------------------------
@p0 [Int32]: 5
我的映射类的Id为Int16,而数据库本身的列类型为smallint,那么为什么幕后sql认为参数是整数(Int32)而不是smallint(Int16)?
列映射:
[Column(IsPrimaryKey = true, DbType="SmallInt NOT NULL", CanBeNull=false)]
public Int16 Id { get; set; }
【问题讨论】:
标签: c# linq-to-sql type-conversion