【问题标题】:Linq DataContext.Log - logging sql command with parametersLinq DataContext.Log - 使用参数记录 sql 命令
【发布时间】:2012-04-25 14:28:43
【问题描述】:

我使用 Linq DataContext.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 and @p1来登录

【问题讨论】:

  • 参数值一般写在语句之后。我不明白这个问题。或许您需要致电Flush
  • 如果你得到了你想要的信息,别忘了将答案标记为已接受。

标签: linq-to-sql


【解决方案1】:

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

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;
        }

【讨论】:

  • 我已经在创建的上下文中全局定义了作家,我希望这一切都是全局的
  • @dzajdol - 根本没有得到你
  • @dzajdol - 您可以修改代码并使其在您的应用程序中通用
  • 但是我该怎么做呢?如何覆盖 dataContext??
  • @dzajdol - 不需要它就试试吧
猜你喜欢
  • 2019-11-12
  • 2020-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多