有没有人能用英语解释一下下面的代码是做什么的?
var subCriteria = DetachedCriteria.For<UserLocation>();
subCriteria.SetProjection(Projections.Property("LocationId"))
.Add(Restrictions.Eq("UserId", userId));
return UoW.Session.CreateCriteria(typeof(Location))
.Add(Subqueries.PropertyIn("LocationId", subCriteria)).List<Location>();发布于 2010-01-27 17:31:12
您能运行代码并查看它生成的SQL吗?
我猜应该是这样的:
SELECT *
FROM Location
WHERE LocationId IN (SELECT LocationId FROM UserLocation WHERE UserId = @UserId)它看起来像是在尝试根据给定用户的UserId查找他们的所有位置。
Subqueries.PropertyIn正在运行“内部选择”。
SetProjection返回可能列的子集。
限制用于构建WHERE子句。
DetachedCriteria和CreateCriteria用于构建SELECT语句。
末尾的列表运行查询并返回给定类型的对象列表。
https://stackoverflow.com/questions/2143633
复制相似问题