小编Bri*_*ian的帖子

SQL包含的HQL等价物

我正在尝试编写一个HQL查询来选择包含子集合中对象的对象.

例:

比赛对象

ContestID  
ContestName  
RequiredCountries -> one to many collection of Country objects  
Run Code Online (Sandbox Code Playgroud)

国家对象

CountryCode  
CountryName  
Run Code Online (Sandbox Code Playgroud)

sql相当于我想要的:

SELECT * FROM CONTEST C  
WHERE C.CONTESTID IN(SELECT CONTESTID FROM CONTEST_COUNTRY CC INNER JOIN COUNTRY CTRY ON   
CC.COUNTRYCODE = CTRY.COUNTRYCODE WHERE COUNTRYCODE='USA')
Run Code Online (Sandbox Code Playgroud)

要么

SELECT * FROM CONTEST C  
WHERE EXISTS(SELECT CONTESTID FROM CONTEST_COUNTRY CC INNER JOIN COUNTRY CTRY ON 
CC.COUNTRYCODE = CTRY.COUNTRYCODE WHERE COUNTRYCODE='USA' AND CC.CONTESTID=C.CONTESTID)  
Run Code Online (Sandbox Code Playgroud)

我有这个hql,它有效,但似乎不是一个好的解决方案 -

from Contest C  
where (from Country where CountryCode = :CountryCode) =  some elements(C.RequiredCountries) 
Run Code Online (Sandbox Code Playgroud)

我也考虑加入Country,但由于我没有表示关系的对象类,所以我不确定如何加入HQL. …

sql hql contains

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

SQL Server 2005内存压力和tempdb写入问题

我们的生产SQL Server存在一些问题.

服务器:双四核Xeon 8 GB RAM单RAID 10阵列Windows 2003 Server 64位SQL Server 2005标准64位

现在机器上有大约250MB的可用RAM.SQL Server有大约6GB的RAM,我们的监控软件说只有一半的SQL Server分配RAM实际上被使用.

我们的主数据库大约为20GB,任何频率都可以使用大约12GB.我们的tempdb是700MB.两者都位于同一物理磁盘阵列上.

此外,使用Filemon,我能够看到tempdb文件有100或1000的写入长度65536.磁盘队列长度几乎80%的时间超过100.

所以,这是我的问题 -

  1. 什么会导致tempdb上的所有写入?我不确定我们是否总是有那么多活动,但似乎过度,这些问题是最近的.

  2. 我应该只为服务器添加更多内存吗?

  3. 在高负载服务器上,tempdb和db文件应该位于不同的阵列上吗?

sql-server performance sql-server-2005 tempdb

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

C#好友类/元数据和反思

我试图使用反射来检查给定类上的属性是否设置了ReadOnly属性.我使用的类是MVC视图模型(使用元数据的部分"伙伴"类.

 public partial class AccountViewModel  
{
    public virtual Int32 ID { get; set; } 
    public virtual decimal Balance { get; set; }    

} 
[MetadataType(typeof(AccountViewModelMetaData))]
public partial class AccountViewModel  
{
    class AccountViewModelMetaData
    {
        [DisplayName("ID")]
        public virtual Int32 ID { get; set; }

        [DisplayName("Balance")]
        [DataType(DataType.Currency)] 
        [ReadOnly(true)]
        public virtual decimal Balance { get; set; }

    }
}
Run Code Online (Sandbox Code Playgroud)

我想检查"Balance"是否具有ReadOnly属性.如果我在AccountViewModel的Balance属性上设置ReadOnly属性,我可以这样检索它:

Type t = typeof(AccountViewModel);
PropertyInfo pi = t.GetProperty("Balance");  
bool isReadOnly =  ReadOnlyAttribute.IsDefined(pi,typeof( ReadOnlyAttribute);
Run Code Online (Sandbox Code Playgroud)

如果它位于元数据类中,我无法检索属性信息.如何检查属性是否存在?我为所有视图模型定义了元数据类,并且需要通用的方法来检查元数据类的属性.

有什么建议?

.net c# reflection attributes

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

Magento分层导航 - 按计数排序

我想按每个过滤器中的#项对每个分层导航过滤器进行排序.

以下是现在显示的内容 -

  • 书籍 - 1
  • CD的 - 2
  • DVD's - 20

我要展示的内容 -

  • DVD's - 20
  • CD的 - 2
  • 书籍 - 1

我一直在看目录/ layer/filter.phtml,但我无法弄清楚如何对magento集合进行排序.

理想情况下我想要这样的东西:

$ this-> getItems() - > order('Count Desc')

我怎么能做到这一点?

navigation magento layered

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

LINQ TO Nhibernate Count

我正在尝试使用LINQ to Nhibernate来计算我数据库中的表.但是,我正在运行的代码是拉回表中的所有记录而不是从表中运行select count().

这是我的代码 -

public int GetTotalCount(Func<T, bool> where) {

            IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>().Where(where).AsQueryable();
            return queryable.Count();

}
Run Code Online (Sandbox Code Playgroud)

我也试过 -

    public int GetTotalCount(Func<T, bool> where)
    {
        IQueryable<T> queryable = this._sessionManager.GetCurrentSession().Linq<T>();
        return queryable.Count(where);
    }
Run Code Online (Sandbox Code Playgroud)

两者都拉回整个数据集而不是运行计数.有任何想法吗?

此外,我正在使用NHProf对其进行分析,因此我可以查询它正在运行,这是

从表中选择*

linq nhibernate

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