首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ ExecuteQuery -错误

LINQ ExecuteQuery -错误
EN

Stack Overflow用户
提问于 2011-12-01 03:51:58
回答 3查看 1.8K关注 0票数 5

我有关于Executequery的问题:错误消息:“指定的类型转换无效”。我试着这样做:

代码语言:javascript
复制
var qq = db.ExecuteQuery<class_search>(query, ddl4, ddl5, ddl1).ToList();

但同样的错误也是如此。我尝试过几种方法。当我尝试执行IEnumerable时,总是出现此错误或“查询结果不能枚举超过一次”。我读了很多文章,但我不知道怎么做。我做错了什么,或者遗漏了什么?

代码语言:javascript
复制
public class class_search
{
    public string path_image
    { get; set; }

    public string name_product
    { get; set; }

    public float cost
    { get; set; }
} 

public partial class Search : System.Web.UI.Page
{
    DataClasses1DataContext db = new DataClasses1DataContext();

    string ddl4 = DropDownList4.SelectedItem.Value;
    string ddl5 = DropDownList5.SelectedItem.Value;
    string ddl1 = DropDownList1.SelectedItem.Value;

    string query = "select p.path_image, p.name_product, p.cost from Table1 a, Table2  p, Table3 k where a.column1 = {0} and a.column2 = {1} and k.column2 = {2} and p.IDForeignColumn1 = k.IDcolumn and p.IDForeignColumn2 = a.IDcolumn"

    var qq = db.ExecuteQuery<class_search>(query, ddl4, ddl5, ddl1);

    ListView1.DataSource = qq;
    ListView1.DataBind();
}

//我把代码改成了英文。现在a.column1、a.column2和k.column2都是字符串类型。

EN

回答 3

Stack Overflow用户

发布于 2012-01-07 18:11:49

试试IEnumerable<class_search> qq = db.ExecuteQuery<class_search>(query, ddl4, ddl5, ddl1).ToList();,看看这是否有帮助。

我知道这看起来像是吹毛求疵,但var的行为在这里可能是一个障碍,所以值得一试。如果不能做到这一点,请让我知道,我会尝试适当地更新这个答案。

此外,请更新问题中的代码示例,以显示您的代码所在的事件方法,如评论者之一所建议的那样。

票数 0
EN

Stack Overflow用户

发布于 2012-03-05 15:43:36

.Net中的FLOAT类型在SQL中不是float类型,它是double类型。事实上,浮点类型并没有被LINQ- to -SQL提供程序映射到任何SQL类型。因此,当尝试比较class_search.cost或尝试创建对象class_search时,发送的参数会失败。

解决方案:将search_class定义更改为:

代码语言:javascript
复制
public class class_search
{
    public string path_image
    { get; set; }

    public string name_product
    { get; set; }

    public double cost
    { get; set; }
} 
票数 0
EN

Stack Overflow用户

发布于 2014-05-30 16:09:22

您的主要问题是由Clr DateTypeSql Db类型之间的不兼容引起的。要解决此问题,必须创建sql select命令视图并将其拖到dbml设计器中。

linq to sql dbml自动映射器引擎可以正确地选择目标和源type.and,并在yourdbml.designer.cs文件中拖动视图的代码生成的POCO类中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8332060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档