问题列表 - 第2492页

LINQ to SQL可以查询XML字段DB-serverside吗?

.NET 3.5,C#

我有一个带有"搜索"功能的网络应用程序.可搜索的一些字段是表中的第一类列,但其中一些实际上是XML数据类型中的嵌套字段.

以前,我构建了一个系统,用于为我的搜索动态构建SQL.我有一个很好的类层次结构,它构建了SQL表达式和条件语句.唯一的问题是SQL注入攻击不安全.

我正在阅读Rob Conery的优秀文章,该文章指出,如果永远不会枚举IQueryable结果,那么多个查询可以合并到服务器的单个TSQL查询中.这让我觉得我的动态搜索结构太复杂了 - 我只需要组合多个LINQ表达式.

例如(人为):

Author:
    ID (int),
    LastName (varchar(32)), 
    FirstName (varchar(32))

    context.Author.Where(xx => xx.LastName == "Smith").Where(xx => xx.FirstName == "John")
Run Code Online (Sandbox Code Playgroud)

结果在以下查询中:

SELECT [t0].[ID], [t0].[LastName], [t0].[FirstName]
FROM [dbo].[Author] AS [t0]
WHERE ([t0].[LastName] = Smith) AND ([t0].[FirstName] = John)
Run Code Online (Sandbox Code Playgroud)

我意识到这可能是一个简单的动态查询生成的完美解决方案,可以安全地从SQL注入 - 我只是循环我的IQueryable结果并执行其他条件表达式来获得我的最终单执行表达式.

但是,我找不到对XML数据评估的任何支持.在TSQL中,为了从XML节点获取值,我们会做类似的事情

XMLField.value('(*:Root/*:CreatedAt)[1]', 'datetime') = getdate() 
Run Code Online (Sandbox Code Playgroud)

但我找不到LINQ to SQL等同于创建此评估.有人存在吗?我知道我可以评估所有非XML条件的DB端,然后进行我的XML评估代码方面,但我的数据足够大,A)这是很多网络流量拖累性能和B)我会退出 - 如果我无法评估XML第一个DB端以排除某些结果集,则会出现内存异常.

想法?建议?

奖金问题 - 如果XML评估实际上是可能的DB方面,那么FLWOR支持呢?

xml sql .net-3.5 linq-to-sql

28
推荐指数
1
解决办法
1万
查看次数

Python在调用之前装饰函数

我有一个由其他人写的相当复杂的装饰器.我想要做的是根据一个descision调用一次函数的装饰版本,或者另一次调用原始函数(未装饰).这可能吗?

python decorator

9
推荐指数
1
解决办法
8214
查看次数

IoC容器是否取代了工厂的使用

我刚刚开始使用IoC容器,如果这是一个愚蠢的问题,请道歉.

我在应用程序中有如下代码

internal static class StaticDataHandlerFactory
    {
        public static IStaticDataHandler CreateHandler(StaticDataUpdate staticDataUpdate)
        {
            if (staticDataUpdate.Item is StaticDataUpdateOffice)
            {
                return new OfficeUpdateHandler();
            }

            if (staticDataUpdate.Item is StaticDataUpdateEmployee)
            {
                return new EmployeeUpdateHandler();   
            }

            if (staticDataUpdate.Item == null)
            {
                throw new NotImplementedException(
                    string.Format("No static data provided"));
            }
            else
            {
                throw new NotImplementedException(
                    string.Format("Unimplemented static data type of {0}", staticDataUpdate.Item.GetType().FullName));
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它基本上是一个简单的工厂,它返回处理输入数据的正确策略.

IoC容器是否允许我删除这样的代码?也就是说:它是否允许我根据输入参数的类型动态选择要加载的具体实现?

还是我离开这里?

c# factory inversion-of-control

9
推荐指数
1
解决办法
4349
查看次数

返回重定向作为对XHR请求的响应

如果浏览器收到对ajax请求的重定向响应会发生什么?

ajax http

145
推荐指数
2
解决办法
8万
查看次数

古典音乐理论/作曲/和声与对位软件

是否有任何软件可以帮助学习/理解/试验和谐与对立的规则?

open-source artificial-intelligence

5
推荐指数
1
解决办法
1万
查看次数

在源代码控制术语中什么是尖峰?

我已经看到了与源控制相关的"尖峰"这个词.

例如,我正在使用的项目有三个顶级文件夹:trunk,branches和spikes.

这个词的含义是什么?

cvs version-control terminology

13
推荐指数
2
解决办法
1793
查看次数

如何在客户端使用JavaScript来检测页面是否已加密?

是否可以在客户端检测用户是否使用加密页面?

换句话说 - 我想知道当前页面的URL是以http还是https开头.

javascript https http

49
推荐指数
2
解决办法
3万
查看次数

WSDL 最佳实践

我正在开发一个与第三方集成的 SOAP 应用程序。我觉得这个第三方的WSDL很奇怪。我对 SOAP 还很陌生,所以如果它没有损坏,我不想要求他们修复它。以下是我注意到的一些我认为错误的事情,尽管我确信它在技术上是有效的文档(因此我在标题中写了“最佳实践”)。另外,我使用 gSOAP 作为我的 SOAP 库,这可能就是为什么我认为其中一些事情很奇怪(我对 gSOAP 的了解甚至比对一般 SOAP 的了解还要新)。

  1. 它们在同一 WSDL 中具有为 SOAP 1.1 和 SOAP 1.2 指定的接口。这导致 gSOAP 生成所需数量的两倍,因为我只使用 1.2。

  2. 他们所有的命名空间都是http://tempuri.org. 不应该是这样的,对吧?

  3. 尽管定义了一堆 RPC 调用,但它们的 WSDL 使用文档格式。我正在考虑要求他们切换到 RPC 格式,因为 gSOAP 似乎不会生成采用 C++ 类型参数作为文档格式的方法。相反,它为每个 API 函数的输入和响应数据创建一个新类。如果我无法解决这个问题,我将不得不编写另一层包裹 gSOAP 的内容,以便为我的应用程序的其余部分提供合理的 API。另外,AFAICT,如果他们切换到 RPC,那么来回的 XML 将与现在完全相同,所以我认为这不会很困难。

  4. 元素的 minOccurs = 0 但当我提交没有它们的请求时,我会收到返回的错误,表明它们是必需的(有时甚至是空指针异常的堆栈跟踪)。如果需要的话,他们应该将它们指定为 minOccurs = 1,对吧?

  5. 几乎所有 Web 服务函数都指定一个响应,其中包含一个表示成功的整数(实际上是一个布尔值)和一个错误消息字符串。他们应该为此使用 SOAP 错误吗?我认为如果这是一个错误,我的应用程序会更容易处理,因为 gSOAP 可以让我很容易地弄清楚这一点(并简单地打印错误消息)。

当然,我并不对这家第 3 方公司仅仅因为我要求他们改变他们的 WSDL 就抱有很高的希望。至少我会学到一些东西……据我所知,这些都没有错,甚至没有问题。感谢您的帮助。

soap wsdl gsoap

5
推荐指数
1
解决办法
1万
查看次数

即使使用事务回滚,SQL标识(自动编号)也会增加

我有一个.net事务与SQL插入到SQL Server 2005数据库.该表具有标识主键.

当事务中发生错误时,将Rollback()被调用.行插入正确回滚,但是下次将数据插入表时,标识会增加,就好像回滚从未发生过一样.所以基本上在身份序列中存在差距.有没有办法让Rollback()方法回收丢失的身份?

我没有以正确的方式接近这个吗?

.net sql transactions sql-server-2005 identity-column

76
推荐指数
6
解决办法
3万
查看次数

86
推荐指数
3
解决办法
7万
查看次数