C# 无法翻译表达式';值(DataClassesDataContext)

C# 无法翻译表达式';值(DataClassesDataContext),c#,linq-to-sql,asp.net-4.0,C#,Linq To Sql,Asp.net 4.0,我正在使用LINQTOSQL类进行插入、更新等操作,这是处理从web应用程序到数据库的数据操作任务所必需的 在这里,我的web应用程序遇到了从linqtosql类插入和更新时间错误的问题 以下是: Server Error in '/EasyMail_New' Application. Could not translate expression 'value(DataClassesDataContext).UpdateEmailField(2, "TotalFileSize", "0")'

我正在使用LINQTOSQL类进行插入、更新等操作,这是处理从web应用程序到数据库的数据操作任务所必需的

在这里,我的web应用程序遇到了从linqtosql类插入和更新时间错误的问题

以下是:

Server Error in '/EasyMail_New' Application.

Could not translate expression 'value(DataClassesDataContext).UpdateEmailField(2, "TotalFileSize", "0")' into SQL and could not treat it as a local expression.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: Could not translate expression 'value(DataClassesDataContext).UpdateEmailField(2, "TotalFileSize", "0")' into SQL and could not treat it as a local expression.

Source Error: 


Line 397:   public object UpdateEmailField([global::System.Data.Linq.Mapping.ParameterAttribute(Name="Email_id", DbType="Int")] System.Nullable<int> email_id, [global::System.Data.Linq.Mapping.ParameterAttribute(DbType="VarChar(25)")] string var_name, [global::System.Data.Linq.Mapping.ParameterAttribute(DbType="VarChar(100)")] string var_value)
Line 398:   {
Line 399:       return ((object)(this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), email_id, var_name, var_value).ReturnValue));
Line 400:   }
Line 401:   

Source File: e:\Shalin\WorkMaterial\EasyMail_New\App_Code\DataClasses.designer.cs    Line: 399 

Stack Trace: 


[InvalidOperationException: Could not translate expression 'value(DataClassesDataContext).UpdateEmailField(2, "TotalFileSize", "0")' into SQL and could not treat it as a local expression.]
   System.Data.Linq.SqlClient.Generator.Generate(SqlNode node, LocalBuilder locInstance) +637618
   System.Data.Linq.SqlClient.Generator.GenerateBody(ILGenerator generator, SqlExpression expression) +276
   System.Data.Linq.SqlClient.ObjectReaderCompiler.CompileDynamicMethod(Generator gen, SqlExpression expression, Type elementType) +188
   System.Data.Linq.SqlClient.ObjectReaderCompiler.Compile(SqlExpression expression, Type elementType) +367
   System.Data.Linq.SqlClient.SqlProvider.GetReaderFactory(SqlNode node, Type elemType) +100
   System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +253
   System.Data.Linq.DataContext.ExecuteMethodCall(Object instance, MethodInfo methodInfo, Object[] parameters) +83
   DataClassesDataContext.UpdateEmailField(Nullable`1 email_id, String var_name, String var_value) in e:\Shalin\WorkMaterial\EasyMail_New\App_Code\DataClasses.designer.cs:399
   _Default.submit_Click(Object sender, EventArgs e) in e:\Shalin\WorkMaterial\EasyMail_New\Mail.aspx.cs:1309
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 

为什么您希望
UpdateEmailField
的主体能够工作?您能澄清一下您的意思吗?
UpdateEmailField
是存储过程的生成方法吗?dbo.UpdateEmailField在存储过程中,我在LINQTOSQL类中添加了as方法。所以我可以直接从linqtosql类访问这个存储过程。
    -------------------Update--------------------

ALTER PROCEDURE [dbo].[UpdateEmailField]
(
    @Email_id int,
    @var_name varchar(25),
    @var_value varchar(100)
)
AS
BEGIN
    SET NOCOUNT ON;
    IF @var_name = 'Title'
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master] SET [Title] = CAST(@var_value AS TEXT) WHERE (Id=@Email_id)
    ELSE IF @var_name = 'Body'
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master] SET [Body] = CAST(@var_value AS TEXT) WHERE (Id=@Email_id)
    ELSE IF @var_name = 'ToUser'
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master] SET [ToUser] = CAST(@var_value AS TEXT) WHERE (Id=@Email_id)
    ELSE IF @var_name = 'IsFileAttached'
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master] SET [IsFileAttached]  = CAST(@var_value AS BIT) WHERE (Id = @Email_id)
    ELSE IF @var_name = 'SentDateTime'
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master] SET [SentDateTime]  = CAST(@var_value AS DATETIME) WHERE (Id = @Email_id)
    ELSE IF @var_name = 'TotalFileSize' 
        UPDATE [EASYMAIL].[dbo].[tbl_Email_master]  SET [TotalFileSize] = CAST (@var_value AS BIGINT) WHERE (Id=@Email_id)
END