我正在尝试编写一个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 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.
所以,这是我的问题 -
什么会导致tempdb上的所有写入?我不确定我们是否总是有那么多活动,但似乎过度,这些问题是最近的.
我应该只为服务器添加更多内存吗?
在高负载服务器上,tempdb和db文件应该位于不同的阵列上吗?
我试图使用反射来检查给定类上的属性是否设置了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)
如果它位于元数据类中,我无法检索属性信息.如何检查属性是否存在?我为所有视图模型定义了元数据类,并且需要通用的方法来检查元数据类的属性.
有什么建议?
我想按每个过滤器中的#项对每个分层导航过滤器进行排序.
以下是现在显示的内容 -
我要展示的内容 -
我一直在看目录/ layer/filter.phtml,但我无法弄清楚如何对magento集合进行排序.
理想情况下我想要这样的东西:
$ this-> getItems() - > order('Count Desc')
我怎么能做到这一点?
我正在尝试使用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对其进行分析,因此我可以查询它正在运行,这是
从表中选择*
.net ×1
attributes ×1
c# ×1
contains ×1
hql ×1
layered ×1
linq ×1
magento ×1
navigation ×1
nhibernate ×1
performance ×1
reflection ×1
sql ×1
sql-server ×1
tempdb ×1