Can someone please help me translate the SQL below into an NHib query?
Ideally both hql and criteria style? I'm just not grokking it yet
Thanks,
Berryl
============
SELECT Resources.ResourceId, Allocations.StartTime,
Allocations.EndTime
FROM Resources INNER JOIN
Allocations ON Resources.ResourceId =
Allocations.ResourceId
WHERE (Resources.BusinessId = "009-67") AND (
Allocations.StartTime >= CONVERT(DATETIME,
'2010-01-01 00:00:00',
102)) AND (
Allocations.StartTime < CONVERT(DATETIME,
'2010-02-01 00:00:00',
102))
the repository interface I'm thinking of would be something like:
public Resource FetchFor(string businessId, DateRange range)
The DDL for the tables is:
create table Resources (
ResourceId integer,
ResourceName TEXT not null,
BusinessId TEXT not null,
OrganizationName TEXT not null,
primary key (ResourceId)
)
create table Allocations (
AllocationId integer,
StartTime DATETIME not null,
EndTime DATETIME not null,
PostingTime DATETIME,
ResourceId INTEGER,
ActivityBaseId INTEGER,
primary key (AllocationId),
unique (StartTime, EndTime, ResourceId, ActivityBaseId)
)
And the mapping for Allocation id
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
access="property" auto-import="true" default-cascade="none" default-
lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2"
name="Domain.Model.Allocations.Allocation, Domain, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null" table="Allocations">
<id name="Id" type="System.Int32, mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="0">
<column name="AllocationId" />
<generator class="identity" />
</id>
<property name="TimeRange"
type="Data.UserTypes.AllocationTimeRangeUserType, Data,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<column name="StartTime" not-null="true" unique-
key="DomainSignature" />
<column name="EndTime" not-null="true" unique-key="DomainSignature" /
>
</property>
<property name="PostingTime" type="System.Nullable`1[[System.DateTime,
mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="PostingTime" not-null="false" />
</property>
<many-to-one class="Domain.Model.Resources.Resource, Domain,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" foreign-
key="Resource_FK" name="Resource">
<column name="ResourceId" unique-key="DomainSignature" />
</many-to-one>
<many-to-one class="Domain.Model.Activities.ActivityBase, Domain,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" foreign-
key="ActivityBase_FK" name="Activity">
<column name="ActivityBaseId" unique-key="DomainSignature" />
</many-to-one>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.