代码之家  ›  专栏  ›  技术社区  ›  CRice

Linq到SQL Int16在SQL命令中转换为Int32

  •  2
  • CRice  · 技术社区  · 16 年前

    使用方法参数

    Int16? id
    

    以及linqtosqlwhere子句

    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
    


    列映射:

        [Column(IsPrimaryKey = true, DbType="SmallInt NOT NULL", CanBeNull=false)]
        public Int16 Id { get; set; }
    
    2 回复  |  直到 16 年前
        1
  •  5
  •   Mike Two    16 年前

    将where子句更改为

    where !id.HasValue || m.Id == id.Value
    

    有一些关于可空的空头的东西正在把它扔掉。我不知道为什么,但我以前遇到过这个,发现 .Value

        2
  •  0
  •   Jim L    16 年前

    六羟甲基三聚氰胺六甲醚。。。我注意到你没有得到任何代表性的!sql中的id.HasValue。也许这是与包裹有关的某种骗局?对我来说似乎是假的,但我唯一能想到的是。