小编leo*_*ora的帖子

在C#中动态添加到nhibernate查询中的where子句的最佳方法是什么?

我有一些C#代码使用nhibernate查询数据库,如下所示:

      public void Query()
      {

        IEnumerable<Project> list = session.Query<Project>()
            .Where(p => !p.IsDeleted)
            .FetchMany(r => r.UnfilteredProjectApplications)
            .ThenFetch(r => r.Application)
            .ToList()
      }
Run Code Online (Sandbox Code Playgroud)

我现在有许多用户驱动程序过滤器,因此,根据传入的参数,我想添加到where子句.所以像这样:

       public void Query(string name)
      {

         if (!String.IsNullOrEmpty(name)
          {
            IEnumerable<Project> list = session.Query<Project>()
             .Where(p => !p.IsDeleted && p.Name == name)
            .FetchMany(r => r.UnfilteredProjectApplications)
            .ThenFetch(r => r.Application)
            .ToList()
          }
      }
      else
      {
        IEnumerable<Project> list = session.Query<Project>()
            .Where(p => !p.IsDeleted)
            .FetchMany(r => r.UnfilteredProjectApplications)
            .ThenFetch(r => r.Application)
            .ToList()
      }
Run Code Online (Sandbox Code Playgroud)

用户可以选择一个或多个过滤器.可以想象,鉴于大量的组合,上面的代码会变得非常复杂.有没有一种优雅的方法可以在这里添加一个带有附加逻辑块的where子句.有些可能很简单,比如

         p.Name == name
Run Code Online (Sandbox Code Playgroud)

但其他人可能更复杂,如:

         p.ProjectApplications.Select(r => r.Application).Any(s => applicationIds.Contains(s.Id)))
Run Code Online (Sandbox Code Playgroud)

正如我所说,可能有零个或多个不同的过滤器..

更新:

我在其他情况下看到,人们建议建立where子句

query …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate lambda filter where-clause

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

是否有更简洁的方法让html列all align = right?

有没有更简洁的方法让html表格列对齐除了align="right"每一行?

是否有任何html或CSS我可以在一个地方指定它,以避免每一行上的HTML?

<tr>
   <td align='right'>Col1</td>
   <td>Col2</td>
 </tr>
<tr>
   <td align='right'>Col1</td>
   <td>Col2</td>
</tr>
<tr>
   <td align='right'>Col1</td>
   <td>Col2</td>
</tr>
<tr>
   <td align='right'>Col1</td>
   <td>Col2</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

html css html-table css-selectors

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

在html/css中,无论如何都有一个跨度"切断"而不是转到另一条线(并在视觉上显示切断?)

我有一个asp.net-mvc网页,我在一些图像后显示一些文字,我不希望文本换行到下一行.如果有截止点,我希望它切断并在末尾加上"......"?(如果没有视觉指示器表明存在截止点,那么我很紧张,那么用户就不会意识到这种情况发生了.

  <img src="some_image.png">
  <img src="some_image1.png">
  <img src="some_image2.png">
  <span id="myText">a bunch of text after the images</span>

#myText
{
      overflow:hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
}
Run Code Online (Sandbox Code Playgroud)

因此,如果数据内容仅占用整行,则显示完整描述,但不是包装到另一行,而是附加"..."

我可以简单地根据字符串长度在服务器端做一些"修剪"逻辑,但我不知道如何检测是否会发生包装(给定用户屏幕宽度等)

对这种情况有什么建议吗?

html css asp.net-mvc word-wrap

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

当您处于"标记"模式时,如何初始化jquery select2项?

我正在试图弄清楚当我处于标记模式时如何初始化jquery select2项目(因为我想允许用户输入新项目:

我看到这个例子:

 $("#e12").select2({tags:["red", "green", "blue"]});
Run Code Online (Sandbox Code Playgroud)

哪个工作正常但我需要用已经添加的一些条目来实例化它.

但如果我想在页面加载时初始化一些现有项目,我尝试做这样的事情:

   var existingEmailAddresses= ["joe@abc.com","bill@abc.com"];

   $("#e12").select2({
            width: "600px",
            multiple: true,
            tags:["A", "B", "C"],
            initSelection: function (element, callback) {
                callback(existingEmailAddresses);
            }
        });
Run Code Online (Sandbox Code Playgroud)

但这似乎没有奏效.

如何在使用标记模式时初始化输入?

编辑

我还想看看是否有任何钩子来验证添加的新标签.在我的情况下,我想确保它们是有效的电子邮件地址.

tags jquery tagging jquery-select2

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

修剪列表的最佳方法是什么?

我有一个字符串列表.它是在别处生成的,但我将在下面生成它来帮助描述这个简化的例子

var list = new List<string>();
list.Add("Joe");
list.Add("");
list.Add("Bill");
list.Add("Bill");
list.Add("");
list.Add("Scott");
list.Add("Joe");
list.Add("");
list.Add("");

list = TrimList(list);
Run Code Online (Sandbox Code Playgroud)

我想要一个函数,"trims"这个列表和修饰我想删除数组末尾的所有项目是空字符串(在这种情况下是最后两个).

注意:我仍然希望保留空白的数组,这是数组中的第二项(或任何其他不在最后的项目)所以我不能做.Where(r=> String.isNullOrEmpty(r))

c# linq collections

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

如何使用文本框中的文本使用jquery过滤html表中的行?

我有一个像这样的html表:

<table>
       <tr><th>Column Heading</th></tr>
       <tr><td>ABC</td></tr>
       <tr><td>DEF</td></tr>
       <tr><td>ABC</td></tr>
       <tr><td>223</td></tr>
       <tr><td>ABCDEF</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我有一个html文本框,当我在文本框中键入文本时,我想要功能,它使用它来根据第一列中的内容过滤html表行

因此,如果我在文本框中键入"AB",则仍会显示3行,而其他行将被隐藏.如果我删除"AB",则所有行再次显示.

基于输入到文本框中的内容进行过滤,隐藏html表中行的最有效方法是什么?

jquery html-table filter

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

在C#中,在给定当前和之前状态的情况下,计算"趋势"的最简单方法是什么?

我有一个变量来显示项目的RAG状态(红色,琥珀色,绿色)

var previousStatus = "R"
var currentStatus = "A"
Run Code Online (Sandbox Code Playgroud)

而我正试图计算"趋势",所以有些喜欢

  var trend = CalculateTrend(previous, current)
Run Code Online (Sandbox Code Playgroud)

我试图找到一个更优雅的解决方案

            if (prev == current)
            return "Stable";
         if (prev == "R" && (current == "G" ||current == "A"))
              return "Improving";
         if (prev == "G" && (current == "R" ||current == "A"))
              return "Declining";
        if (prev == "A" && current == "G")
            return "Improving";
        if (prev == "A" && current == "R")
            return "Declining";
Run Code Online (Sandbox Code Playgroud)

任何有关"清洁"解决方案的建议.

c#

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

在C#中,将接口列表强制转换为对象列表的推荐方法是什么?

我有返回的代码和IVehicle接口的数组

  IEnumerable<IVehicle> allVehicles = GetAllVehicles();
Run Code Online (Sandbox Code Playgroud)

我知道所有这些对象都是Car对象.什么是正确的投射方式

IEnumerable<IVehicle>
Run Code Online (Sandbox Code Playgroud)

IEnumerable<Car>
Run Code Online (Sandbox Code Playgroud)

因为我需要将这些传递给另一个需要的功能 <Enumerable<Car>

c# collections casting

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

用于Java/C#消息传递的REST体系结构的性能

我目前有一个应用程序,通过TCP套接字从Windows客户端发送XML到Windows服务器.

我们正在重写架构,我们的服务器将采用Java.我们正在研究的一种架构是基于http的REST架构.所以C#WinForm客户端将使用此发送信息.我们正在寻找高吞吐量和低延迟.

有没有人对这种方法有任何性能指标,而不是其他一些C#客户端到Java服务器通信选项.

c# java rest

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

界面问题

我有一个名为Foo的对象.现在它实现了IFoo,它有很多属性.

我有一个类只依赖于其中的一些属性所以我创建了IMeasurableFoo(它只有一些属性)

为了避免重复的代码,我现在有IFoo:IMeasurableFoo,因为我将属性移动到IMeasurableFoo

但是从继承的角度来看,这是错误的,因为你有一个从特定接口继承的更通用的接口

关于组织这些抽象的最佳方法的任何想法

例如,如果这些是具体结果:

Bird不会继承FlyingBird(它会反过来)

c# interface

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