Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql 日志-使用参数记录sql命令_Linq To Sql - Fatal编程技术网

Linq to sql 日志-使用参数记录sql命令

Linq to sql 日志-使用参数记录sql命令,linq-to-sql,Linq To Sql,我正在使用LINQDataContext.Log,我想用参数保存sql命令。我该怎么做 现在要记录的内容是: SELECT [t0].[Id_User], [t0].[FirstName], [t0].[LastName], [t0].[UserName], [t0].[Password], [t0].[District_Id], [t0].[Active], [t0].[MobileDevice_Id], [t0].[IsMobile], [t0].[IsWWW], [t0].[IsWhole

我正在使用LINQDataContext.Log,我想用参数保存sql命令。我该怎么做

现在要记录的内容是:

SELECT [t0].[Id_User],
[t0].[FirstName], [t0].[LastName],
[t0].[UserName], [t0].[Password],
[t0].[District_Id], [t0].[Active],
[t0].[MobileDevice_Id],
[t0].[IsMobile], [t0].[IsWWW],
[t0].[IsWholesaler], [t0].[Acc_Admin],
[t0].[Warehouse_Id], [t0].[PIN],
[t0].[ValidFrom], [t0].[ValidTo],
[t0].[IsExternal], [t0].[UserType],
[t0].[DefaultDepartment_Id],
[t0].[Code], [t0].[RowsOnPage],
[t0].[ClientGroup_Id],
[t0].[ClientGroup2_Id],
[t0].[ServerHash],
[t0].[CanOrderInPacks], [t0].[Email],
[t0].[IsAdmin],
[t0].[HasAccessToAllInferiorsData],
[t0].[IsSupplier], [t0].[Position],
[t0].[syncstamp] AS [Syncstamp],
[t0].[Source], [t0].[Deleted],
[t0].[DefaultClient_Id] FROM
[dbo].[Users] AS [t0] WHERE
([t0].[UserName] = @p0) AND
([t0].[Deleted] = @p1)

我想将@p0和@p1写入日志

参数值可以通过以下代码行读取

var results = db.calltodatabase.Where(pradicate); 
IQueryable query = results;

    DbCommand dbCommand = dataContext.GetCommand(query);


        var result = new SqlQueryText();


        result.Text = dbCommand.CommandText;
        int nParams = dbCommand.Parameters.Count;
        result.Params = new ParameterText[nParams];
        for (int j = 0; j < nParams; j++)
        {
            var param = new ParameterText();
            DbParameter pInfo = dbCommand.Parameters[j];
            param.Name = pInfo.ParameterName;
            param.SqlType = pInfo.DbType.ToString();
            object paramValue = pInfo.Value;
            if (paramValue == null)
            {
                param.Value = null;
            }
            else
            {
                param.Value = pInfo.Value.ToString();
            }
            result.Params[j] = param;
        }

我已经在创建的上下文中全局定义了writer,我想将其全部globally@dzajdol-不明白你的意思all@dzajdol-您可以修改代码并使其对您的应用程序通用,但我如何才能做到这一点??如何转换dataContext???@dzajdol-只需尝试一下,不需要它。参数值通常写在语句之后。我不明白这个问题。也许你需要打电话给Flush。如果你得到了想要的信息,别忘了将answwer标记为Accepted。。