小编war*_*cik的帖子

将OData转换为sql字符串

寻找一些解决方案,帮助我将Odata查询转换为sql语法字符串.

基本上我想使用System.Linq.Dynamic,它允许将类似字符串的sql传递给where子句.

我还试图使用返回AST FilterClause的ODataUriParser.ParseFilter,但我不知道如何将它应用于实体框架表来限制结果.

有什么建议?

c# sql linq odata

8
推荐指数
1
解决办法
2095
查看次数

删除没有子节点的父节点

我有一个与从xml文件中删除特定节点有关的问题.

这是我的XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <nodeA attribute="1">
    <nodeB attribute="table">
      <nodeC attribute="500"></nodeC>
      <nodeC attribute="5"></nodeC>
    </nodeB>
    <nodeB attribute="3">
      <nodeC attribute="4"></nodeC>
      <nodeC attribute="5"></nodeC>
      <nodeC attribute="5"></nodeC>
    </nodeB>
    <nodeB attribute="placeHolder">
    <nodeB attribute="toRemove">
      <nodeB attribute="glass"></nodeB>
        <nodeE attribute="7"></nodeE>
      <nodeB attribute="glass"></nodeB>
      <nodeB attribute="glass"></nodeB>
    </nodeB>
    </nodeB>
    <nodeB attribute="3">
      <nodeC attribute="4"></nodeC>
      <nodeC attribute="5"></nodeC>
      <nodeC attribtue="5"></nodeC>
     </nodeB>
    <nodeB attribute="placeHolder">
    <nodeB attribute="toRemove">
      <nodeB attribute="glass"></nodeB>
        <nodeE attribute="7"></nodeE>
      <nodeB attribute="glass"></nodeB>
      <nodeB attribute="glass"></nodeB>
    </nodeB>
    </nodeB>
  </nodeA>
</root>
Run Code Online (Sandbox Code Playgroud)

我想删除节点nodeB="toRemove"而不删除此节点的子节点.之后我需要做同样的事情nodeB attribute="placeHolder".结果的一部分看起来像这样:

     <nodeB attribute="3">
      <nodeC attribute="4"></nodeC>
      <nodeC attribute="5"></nodeC>
      <nodeC attribtue="5"></nodeC>
     </nodeB>
     <nodeB attribute="glass"></nodeB> …
Run Code Online (Sandbox Code Playgroud)

c# xml xpath linq-to-xml xml-parsing

5
推荐指数
2
解决办法
9271
查看次数

FileSystemWatcher InternalBufferOverflow

当我尝试监视网络路径上的文件夹(DFS - 分布式文件系统)时,我收到异常System.IO.Internal.BufferOverflowException:一次更改许多更改.当FileSystemWatcher监视不使用此文件系统的本地/网络路径时,它可以正常工作.

我能够从本地路径上的1000 +文件中获取一个事件而我没有得到BufferOverflow异常,但是当我将文件复制到DFS上的文件夹时,我甚至无法从一个文件中获取事件(为了澄清这一点,我收到了错误事件...).

我已经尝试过设置:

fileSystemWatcher.InternalBufferSize = 65536;
Run Code Online (Sandbox Code Playgroud)

我不确定这是否会对你有所帮助,但路径看起来像这样:

\\corpnet\cloud\\Network\testFolder\myFolderToMonitor
Run Code Online (Sandbox Code Playgroud)

编辑:1我不知道为什么路径中有两个双斜杠.我可以在没有问题文件夹的情况下进行监控,直到\ corpnet\cloud路径.一旦我试图监视任何开始的文件夹,我就会收到错误

...\\Network\...
Run Code Online (Sandbox Code Playgroud)

你的任何提示都表示赞赏.

谢谢

c# filesystemwatcher buffer-overflow microsoft-distributed-file-system windows-server-2008

2
推荐指数
1
解决办法
1633
查看次数

c#从xsi:schemaLocation属性值获取.xsd的本地路径

我正在寻找一种不使用正则表达式来提取模式的本地路径的最佳方法。

样本:

<?xml version="1.0"?>
<ord:order xmlns:ord="http://example.org/ord"
   xmlns:prod="http://example.org/prod"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://example.org/prod chapter05prod.xsd
                   http://example.org/ord chapter05ord.xsd">
<items>
    <prod:product>
        <number xsi:type="xs:short">557</number>
        <name>Short-Sleeved Linen Blouse</name>
        <size xsi:nil="true"/>
    </prod:product>
</items>
Run Code Online (Sandbox Code Playgroud)

或者

xsi:schemaLocation="http://example.org/prod \\RandomFolder\New\chapter05prod.xsd">
Run Code Online (Sandbox Code Playgroud)

或者

 xsi:schemaLocation="chapter05prod.xsd">
Run Code Online (Sandbox Code Playgroud)

我想获取 *.xsd 文件的本地路径。有没有办法使用 xml 解析器或 xmlResolver 或其他不使用正则表达式的方式来做到这一点?

编辑:我正在寻找一种最通用的方法来获取外部 .xsd 路径引用的路径。

另一个例子:

xsi:noNamespaceSchemaLocation="file://C://Documents and Settings//All Users//Application Data//My Application//MyData.xsd"
Run Code Online (Sandbox Code Playgroud)

c# schema xsd xml-parsing

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