小编Mik*_*keL的帖子

使用 Linq 重叠两个日期之间的记录

在我的应用程序中,用户可以委托另一个用户批准订单。

我需要验证的是,不存在循环引用,因此如果在某个时期内User A进行了委托,则不能在该时期内的任何时间进行委托,即存在重叠(日期):User BUser BUser Add/mm/yyyy

Delegator    Delegated To    DateFrom    DateTo
User A       User B          01/11/2012  08/11/2012
User A       User B          16/12/2012  24/12/2012
Run Code Online (Sandbox Code Playgroud)

这是我必须检查重叠的代码:

var overlaps = .Session.QueryOver<DelegateOrderApproval>()
    .Where(x => x.DateFrom > DateTime.Now && delegateOrderApproval.DelegatedUser.UserId == x.DelegatorUser.UserId)
    .And(x => x.DateFrom >= delegateOrderApproval.DateFrom && delegateOrderApproval.DateTo <= x.DateTo
              || (x.DateFrom >= delegateOrderApproval.DateFrom && x.DateTo <= delegateOrderApproval.DateTo)
              || (x.DateFrom <= delegateOrderApproval.DateFrom && x.DateTo >= delegateOrderApproval.DateFrom)
              || (x.DateFrom <= delegateOrderApproval.DateFrom && x.DateTo >= delegateOrderApproval.DateTo))
    .List();
Run Code Online (Sandbox Code Playgroud)

如果我尝试添加以下记录:

var overlaps …
Run Code Online (Sandbox Code Playgroud)

c# linq date

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

在中继器链接按钮中将对象作为 CommandArgument 传递

我有一个带有客户列表的中继器。每个客户都有一个删除链接按钮。作为链接按钮的一部分,我想将 Customer 对象传递给 Command Arguement,如下所示(其中 Container.DataItem 是客户对象):

<asp:LinkButton  ID="lnkDelete" 
   OnClientClick="return confirmDelete();"  
   OnClick="Customer_OnDelete"  
   CommandArgument="<%# Container.DataItem  %>"  
   CommandName="Delete" 
   runat="server"></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

当我这样做时:

    var button = (((LinkButton) sender));

    var customer=  button.CommandArgument;
Run Code Online (Sandbox Code Playgroud)

button.CommandArgument 是一个字符串。我需要所有的对象属性,因为我们使用 Nhibernate,所以需要设置所有内容,删除记录的 ID 是不够的。我在网上看到过关于将逗号分隔的值列表传递到命令论证中的示例,但希望避免这样做。这可能吗?

有任何想法吗?谢谢

c# asp.net repeater linkbutton commandargument

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

Nhibernate QueryOver - 为分页获取子计数

我正在使用Nhibernate 3.0并需要在网站上实现分页.基本上我们有一个ProductCategory,它有一个与之关联的产品集合.到目前为止,我有这个确实有效

var result = Session.QueryOver<TEntity>().TransformUsing(Transformers.DistinctRootEntity)
            .Where(category => category.CategoryId == criteria.CategoryId)
            .Fetch(category => category.Products).Eager
            .Take(pageSize)
            .Skip((pageIndex - 1)*pageSize)
            .Future<TEntity>();
Run Code Online (Sandbox Code Playgroud)

这将返回我正在请求的类别,并根据传入的页面大小和页面索引正确分页子产品.

我现在想要做的实际上是获得产品的总行数,例如,即使我只返回5个产品,我需要知道总共有100个.

非常感谢

c# nhibernate pagination queryover

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