Linq to sql 如何将字符串字段强制转换为存储过程中的各种数据类型
我制作了一个存储过程,通过列名更新值以对应列值 以下是:Linq to sql 如何将字符串字段强制转换为存储过程中的各种数据类型,linq-to-sql,asp.net-4.0,Linq To Sql,Asp.net 4.0,我制作了一个存储过程,通过列名更新值以对应列值 以下是: 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_mas
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
这几天前还可以
但现在我遇到了一个错误,叫做:
Could Not Translate value(DataClasses).UpdateEmailField(4,"TotalFileSize","0")
来自linqtosql类
我只是想解决这个问题
-------------------------Update-----------------------
有人能解决这个问题吗
-------------------------Update-----------------------
以下是我如何调用此存储过程:
db.UpdateEmailField(newId, "TotalFileSize", tot_file_size.ToString());
最后我是否可以将字符串值转换为Bigint数据类型?否则,是否可以显示LinQ代码?