【发布时间】:2012-03-06 17:00:30
【问题描述】:
我有两个最简单的实体,类似于:
public class User
{
int id;
string name;
Guid Guid;
IList<Rentals> Rentals;
}
public class Rentals
{
int Id { get; protected set; }
User User { get; set; }
int DvdId { get; set; }
}
(我已经声明了所有公共虚拟属性和所有内容,只是为了简化在这里不提)
假设每个User 会有很多Rentals,我想通过他的Guid 选择某个用户的所有DvdId。
我遇到了一个异常,这个:could not resolve property: User.Guid
这就是我在我的存储库中所做的:
DetachedCriteria dc = QueryOver.Of<Rentals>()
.Where(r => r.User.Guid == userGuid)
.Select(r => r.DvdId)
.DetachedCriteria;
userGuid 正在通过单元测试。 (这是我知道存在的那个)
如果我这样做:
DetachedCriteria dc = QueryOver.Of<Rentals>()
.Where(r => r.User.Id == 1) // Note - replaced guid with id (an int)
.Select(r => r.DvdId)
.DetachedCriteria;
这很好用。所以我猜测需要为引导比较做一些事情..
我的 guid 映射是这样的:(在 UserMap 类下)
Map(x => x.Guid, "Guid")
.Not.Nullable();
我正在流利地使用来映射实体。
那么....请问如何对 guid 应用限制?
【问题讨论】:
标签: nhibernate guid queryover