【问题标题】:Cannot convert method group 'SingleOrDefault' to non-delegate type 'Product'. Did you intend to invoke the method?无法将方法组“SingleOrDefault”转换为非委托类型“产品”。您是否打算调用该方法?
【发布时间】:2013-11-26 19:26:14
【问题描述】:

这是我的代码。我不断收到此错误。我对编程和这个网站很陌生。希望我正确发布了问题。谢谢

protected void btnSave_Click(object sender, EventArgs e)
{
    using(TestEntities myEntity = new TestEntities())
    {
        Product myProduct;

        //if insert
        if (_id == -1)
        {
            myProduct = new Product();
            myProduct.CreateDateTime = DateTime.Now;
            myProduct.UpdateDateTime = DateTime.Now;
            myEntity.AddToProducts(myProduct); 

        }

            //update case
        else
        {
            myProduct = (from p in myEntity.Products
                         where p.ProductID == _id
                         **select p).SingleOrDefault;**
            myProduct.UpdateDateTime = DateTime.Now;
        }

【问题讨论】:

  • "您是否打算调用该方法?"你做了()

标签: c# .net linq methods


【解决方案1】:

从错误中并没有查看您的代码,您缺少 ()SingleOrDefault 的方法。应该是这样的:

var product = query.SingleOrDefault();
                                 //^^^^ Missing brackets

自从您发布代码后,很明显您缺少括号SingleOrDefault

myProduct = (from p in myEntity.Products
             where p.ProductID == _id
             select p).SingleOrDefault();
                                   //^^^^ here

由于SingleOrDefault 接受您可以执行的谓词:

myProduct = myEntity.Products.SingleOrDefault(r=> r.ProductID == _id);

【讨论】:

  • 哦,愚蠢的错误。我添加了括号,但仍然收到相同的错误消息
  • @user3037945,你确定吗?只是清理/重建,现在是在不同的行上出现错误吗?
  • 我的新错误信息是:无法将类型'TestModel.Product'隐式转换为'Product'
  • @user3037945,现在这是一个单独的错误,您的项目中似乎有两个 Product 类。应该有一个。
  • 嗯好吧。我会看看我是否能找到我在哪里做的。谢谢
猜你喜欢
  • 2013-02-18
  • 1970-01-01
  • 2013-10-23
  • 2017-06-23
  • 2012-03-27
  • 1970-01-01
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多