我正在通过L2S运行存储过程并返回'指定的强制转换无效'。存储过程在手动运行时返回数据,当我逐步执行它时,一切都很好,直到它尝试在“foreach(结果中的var行)”中创建行对象。
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()...
想法?
答案 0 :(得分:1)
在执行foreach
语句之前,实际上不会调用您的sporc。因此,请确保LINQ to SQL可以正确地将从sproc返回的数据映射到对象。
答案 1 :(得分:1)
这通常是由数据类型不匹配引起的,例如:如果存储过程返回一个int并且它被映射到一个字符串,或者如果存储的proc返回一个varchar(1)并且它被映射到一个System.Char。