سؤال

Error:

System.InvalidOperationException: The query results cannot be enumerated more than once.

Code:

Controller:

namespace EmployeeAttendance_app.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewBag.Message = "Precise Technology Consultants";
            var DataContext = new EmployeeAtdDataContext();
            //var EmployeeAtd = DataContext.GetAttendance_Sp();
            IEnumerable<GetAttendance_SpResult> EmployeeAtd = DataContext.GetAttendance_Sp();
            return View(EmployeeAtd);
        }

View:

@using EmployeeAttendance_app.Models
<div>

@{

    var grid = new WebGrid(Model, defaultSort: "EmplID");

}

@grid.GetHtml()

</div>

Models:

#pragma warning disable 1591
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.237
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace EmployeeAttendance_app.Models
{
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    using System.Data;
    using System.Collections.Generic;
    using System.Reflection;
    using System.Linq;
    using System.Linq.Expressions;
    using System.ComponentModel;
    using System;


    [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="a1")]
    public partial class EmployeeAtdDataContext : System.Data.Linq.DataContext
    {

        private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

    #region Extensibility Method Definitions
    partial void OnCreated();
    #endregion

        public EmployeeAtdDataContext() : 
                base(global::System.Configuration.ConfigurationManager.ConnectionStrings["a1ConnectionString"].ConnectionString, mappingSource)
        {
            OnCreated();
        }

        public EmployeeAtdDataContext(string connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public EmployeeAtdDataContext(System.Data.IDbConnection connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public EmployeeAtdDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public EmployeeAtdDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

        public System.Data.Linq.Table<EmployeeAtd> EmployeeAtds
        {
            get
            {
                return this.GetTable<EmployeeAtd>();
            }
        }

        [global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.GetAttendance_Sp")]
        public ISingleResult<GetAttendance_SpResult> GetAttendance_Sp()
        {
            IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
            return ((ISingleResult<GetAttendance_SpResult>)(result.ReturnValue));
        }
    }

    [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.V_EmployeeAtd")]
    public partial class EmployeeAtd
    {

        private string _EmplID;

        private string _EmplName;

        private string _RecDate;

        private string _RecTime;

        private string _DeptName;

        public EmployeeAtd()
        {
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmplID", DbType="Char(8) NOT NULL", CanBeNull=false)]
        public string EmplID
        {
            get
            {
                return this._EmplID;
            }
            set
            {
                if ((this._EmplID != value))
                {
                    this._EmplID = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmplName", DbType="NVarChar(40) NOT NULL", CanBeNull=false)]
        public string EmplName
        {
            get
            {
                return this._EmplName;
            }
            set
            {
                if ((this._EmplName != value))
                {
                    this._EmplName = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecDate", DbType="Char(10)")]
        public string RecDate
        {
            get
            {
                return this._RecDate;
            }
            set
            {
                if ((this._RecDate != value))
                {
                    this._RecDate = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecTime", DbType="Char(5)")]
        public string RecTime
        {
            get
            {
                return this._RecTime;
            }
            set
            {
                if ((this._RecTime != value))
                {
                    this._RecTime = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DeptName", DbType="NVarChar(50)")]
        public string DeptName
        {
            get
            {
                return this._DeptName;
            }
            set
            {
                if ((this._DeptName != value))
                {
                    this._DeptName = value;
                }
            }
        }
    }

    public partial class GetAttendance_SpResult
    {

        private string _EmplID;

        private string _EmplName;

        private string _RecDate;

        private string _RecTime;

        private string _DeptName;

        public GetAttendance_SpResult()
        {
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmplID", DbType="Char(8) NOT NULL", CanBeNull=false)]
        public string EmplID
        {
            get
            {
                return this._EmplID;
            }
            set
            {
                if ((this._EmplID != value))
                {
                    this._EmplID = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EmplName", DbType="NVarChar(40) NOT NULL", CanBeNull=false)]
        public string EmplName
        {
            get
            {
                return this._EmplName;
            }
            set
            {
                if ((this._EmplName != value))
                {
                    this._EmplName = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecDate", DbType="Char(10)")]
        public string RecDate
        {
            get
            {
                return this._RecDate;
            }
            set
            {
                if ((this._RecDate != value))
                {
                    this._RecDate = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecTime", DbType="Char(5)")]
        public string RecTime
        {
            get
            {
                return this._RecTime;
            }
            set
            {
                if ((this._RecTime != value))
                {
                    this._RecTime = value;
                }
            }
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DeptName", DbType="NVarChar(50) NOT NULL", CanBeNull=false)]
        public string DeptName
        {
            get
            {
                return this._DeptName;
            }
            set
            {
                if ((this._DeptName != value))
                {
                    this._DeptName = value;
                }
            }
        }
    }
}
#pragma warning restore 1591

I'm newbie to MVC 3 and Linq to SQL, trying to display data in GRID using WebGrid class but getting error. I have used Linq to Sql class and dropped SP and table into it.

هل كانت مفيدة؟

المحلول

Change you View to accept list of GetAttendance_SpResult bcoz you are passing this model from your controller

 @model IEnumerable<GetAttendance_SpResult>

نصائح أخرى

Try converting ur IEnumerable to List. because When you use .ToList() on IEnumerable, all the items in the IEnumerable saved as a List. and when u work with IEnumerable item is accessed from your database

@{

    var grid = new WebGrid(Model.ToList(), defaultSort: "EmplID");

}

@grid.GetHtml()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top