代码之家  ›  专栏  ›  技术社区  ›  Bill Martin

LinqToSql提供“指定的强制转换无效”

  •  0
  • Bill Martin  · 技术社区  · 17 年前

    我正在通过L2S运行一个存储过程,它返回“指定的强制转换无效”。当手动运行时,存储的进程返回数据,当我单步执行时,一切正常,直到它尝试在“foreach(var row in result)”中创建row对象为止。

    var q = new db();
    var result = q.GetNearbyLocations(latitude, longitude,searchDistance);
    foreach (var row in result)
       {
          var c = new Clinic()
                    {
                       Name = row.CLINIC_NAME.Trim(),
                       Address1 = row.DRADR1.Trim()...
    

    思想?

    2 回复  |  直到 17 年前
        1
  •  1
  •   Anton Gogolev    17 年前

    直到 foreach 语句被执行。因此,请确保LINQ to SQL能够正确地将存储过程返回的数据映射到对象。

        2
  •  1
  •   KristoferA    17 年前

    这通常是由数据类型不匹配引起的,例如,如果存储过程返回int并映射到字符串,或者如果存储过程返回varchar(1)并映射到System.Char。