Linq To SQL - specified reset invalid - SingleOrDefault ()

I am trying to do the following ...

Request request = (
     from r in db.Requests 
     where r.Status == "Processing" && r.Locked == false 
     select r
).SingleOrDefault();

Throws the following exception ...

Message:
Specified cast is not valid.

StackTrace:
   at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
   at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
   at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
   at System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression)
   at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source)
   at GDRequestProcessor.Worker.GetNextRequest()

Can anybody help me? Thanks in advance!


Details of the circuit can be found below ...

[Table(Name="dbo.Requests")]
public partial class Request : INotifyPropertyChanging, INotifyPropertyChanged
{

    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

    private int _RequestId;

    private string _LoanNumber;

    private string _ClientCode;

    private int _RequestTypeId;

    private bool _HasParameters;

    private string _Status;

    private bool _Locked;

    private string _ErrorMessage;

    private int _ReferenceId;

    private EntitySet<RequestParameter> _RequestParameters;

    private EntityRef<RequestType> _RequestType;

#region Extensibility Method Definitions
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
partial void OnCreated();
partial void OnRequestIdChanging(int value);
partial void OnRequestIdChanged();
partial void OnLoanNumberChanging(string value);
partial void OnLoanNumberChanged();
partial void OnClientCodeChanging(string value);
partial void OnClientCodeChanged();
partial void OnRequestTypeIdChanging(int value);
partial void OnRequestTypeIdChanged();
partial void OnHasParametersChanging(bool value);
partial void OnHasParametersChanged();
partial void OnStatusChanging(string value);
partial void OnStatusChanged();
partial void OnLockedChanging(bool value);
partial void OnLockedChanged();
partial void OnErrorMessageChanging(string value);
partial void OnErrorMessageChanged();
partial void OnReferenceIdChanging(int value);
partial void OnReferenceIdChanged();
#endregion

    public Request()
    {
        this._RequestParameters = new EntitySet<RequestParameter>(new Action<RequestParameter>(this.attach_RequestParameters), new Action<RequestParameter>(this.detach_RequestParameters));
        this._RequestType = default(EntityRef<RequestType>);
        OnCreated();
    }

    [Column(Storage="_RequestId", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
    public int RequestId
    {
        get
        {
            return this._RequestId;
        }
        set
        {
            if ((this._RequestId != value))
            {
                this.OnRequestIdChanging(value);
                this.SendPropertyChanging();
                this._RequestId = value;
                this.SendPropertyChanged("RequestId");
                this.OnRequestIdChanged();
            }
        }
    }

    [Column(Storage="_LoanNumber", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
    public string LoanNumber
    {
        get
        {
            return this._LoanNumber;
        }
        set
        {
            if ((this._LoanNumber != value))
            {
                this.OnLoanNumberChanging(value);
                this.SendPropertyChanging();
                this._LoanNumber = value;
                this.SendPropertyChanged("LoanNumber");
                this.OnLoanNumberChanged();
            }
        }
    }

    [Column(Storage="_ClientCode", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
    public string ClientCode
    {
        get
        {
            return this._ClientCode;
        }
        set
        {
            if ((this._ClientCode != value))
            {
                this.OnClientCodeChanging(value);
                this.SendPropertyChanging();
                this._ClientCode = value;
                this.SendPropertyChanged("ClientCode");
                this.OnClientCodeChanged();
            }
        }
    }

    [Column(Storage="_RequestTypeId", DbType="Int NOT NULL")]
    public int RequestTypeId
    {
        get
        {
            return this._RequestTypeId;
        }
        set
        {
            if ((this._RequestTypeId != value))
            {
                if (this._RequestType.HasLoadedOrAssignedValue)
                {
                    throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
                }
                this.OnRequestTypeIdChanging(value);
                this.SendPropertyChanging();
                this._RequestTypeId = value;
                this.SendPropertyChanged("RequestTypeId");
                this.OnRequestTypeIdChanged();
            }
        }
    }

    [Column(Storage="_HasParameters", DbType="Bit NOT NULL")]
    public bool HasParameters
    {
        get
        {
            return this._HasParameters;
        }
        set
        {
            if ((this._HasParameters != value))
            {
                this.OnHasParametersChanging(value);
                this.SendPropertyChanging();
                this._HasParameters = value;
                this.SendPropertyChanged("HasParameters");
                this.OnHasParametersChanged();
            }
        }
    }

    [Column(Storage="_Status", DbType="VarChar(50) NOT NULL", CanBeNull=false)]
    public string Status
    {
        get
        {
            return this._Status;
        }
        set
        {
            if ((this._Status != value))
            {
                this.OnStatusChanging(value);
                this.SendPropertyChanging();
                this._Status = value;
                this.SendPropertyChanged("Status");
                this.OnStatusChanged();
            }
        }
    }

    [Column(Storage="_Locked", DbType="Bit NOT NULL")]
    public bool Locked
    {
        get
        {
            return this._Locked;
        }
        set
        {
            if ((this._Locked != value))
            {
                this.OnLockedChanging(value);
                this.SendPropertyChanging();
                this._Locked = value;
                this.SendPropertyChanged("Locked");
                this.OnLockedChanged();
            }
        }
    }

    [Column(Storage="_ErrorMessage", DbType="VarChar(255)")]
    public string ErrorMessage
    {
        get
        {
            return this._ErrorMessage;
        }
        set
        {
            if ((this._ErrorMessage != value))
            {
                this.OnErrorMessageChanging(value);
                this.SendPropertyChanging();
                this._ErrorMessage = value;
                this.SendPropertyChanged("ErrorMessage");
                this.OnErrorMessageChanged();
            }
        }
    }

    [Column(Storage="_ReferenceId", DbType="Int NOT NULL")]
    public int ReferenceId
    {
        get
        {
            return this._ReferenceId;
        }
        set
        {
            if ((this._ReferenceId != value))
            {
                this.OnReferenceIdChanging(value);
                this.SendPropertyChanging();
                this._ReferenceId = value;
                this.SendPropertyChanged("ReferenceId");
                this.OnReferenceIdChanged();
            }
        }
    }
+5
source share
3 answers

You need to make sure your table schema matches your .dbml chart and its related properties.

Perhaps the easiest way to do this is to remove the specified table from your dbml chart. Then, from your server explorer, drag it back onto the diagram.

Note. This will not always work with views. Sometimes you have to run exec sp_refreshview MyViewNamefrom SSMS before re-adding your view to DBML.

+9

: .SingleOrDefault<Request>().

Request request = (
                      from r in db.Requests  
                      where r.Status == "Processing" && r.Locked == false  
                      select r 
                  )
                  .SingleOrDefault<Request>();
0

dbml . , dbml.

0

All Articles