Я пытаюсь создать запрос NHibernate, чтобы получить список стран, в которых класс акций доступен для продажи (AFS).
Это определение таблицы AFS:
CREATE TABLE [MStar].[AFS](
[AFS_ShareClassId] [int] NOT NULL,
[AFS_CountryId] [int] NOT NULL,
CONSTRAINT [PK_AFS] PRIMARY KEY CLUSTERED
(
[AFS_ShareClassId] ASC,
[AFS_CountryId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [MStar].[AFS] WITH CHECK ADD CONSTRAINT [FK_AFS_Country] FOREIGN KEY([AFS_CountryId])
REFERENCES [MStar].[Country] ([Country_Id])
GO
ALTER TABLE [MStar].[AFS] CHECK CONSTRAINT [FK_AFS_Country]
и вот определение таблицы Country:
CREATE TABLE [MStar].[Country](
[Country_Id] [int] NOT NULL,
[Country_ShortCode] [char](2) NULL,
[Country_LongCode] [char](3) NOT NULL,
[Country_RegionId] [char](3) NOT NULL,
[Country_Name] [varchar](128) NOT NULL,
CONSTRAINT [PK_Country] PRIMARY KEY CLUSTERED
(
[Country_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [MStar].[Country] WITH CHECK ADD CONSTRAINT [FK_Country_Region] FOREIGN KEY([Country_RegionId])
REFERENCES [MStar].[Region] ([Region_Id])
GO
ALTER TABLE [MStar].[Country] CHECK CONSTRAINT [FK_Country_Region]
Сначала я пытаюсь сделать этот запрос максимально простым, как показано ниже:
var afs = _session.CreateCriteria<AFS>().List<AFS>();
Это всегда ничего не возвращает, хотя я знаю, что в таблицах AFS & Country есть (тонны) материала, что говорит мне о том, что что-то не так с моими файлами сопоставления.отображение AFS:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="FTMS.Domain"
namespace="FTMS.Domain.Entities">
<class mutable="false" name="AFS" table="AFS" schema="MStar">
<composite-id >
<key-many-to-one name="ShareClass" column="AFS_ShareClassId" type="FTMS.Domain.Entities.ShareClass"></key-many-to-one>
<key-many-to-one name="Country" column="AFS_CountryId" type="FTMS.Domain.Entities.Country"></key-many-to-one>
</composite-id>
<set name="Countries"
inverse="true"
lazy="true"
cascade="save-update">
<key column="Country_Id"></key>
<one-to-many class="Country"/>
</set>
</class>
</hibernate-mapping>
, и это отображение страны:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="FTMS.Domain"
namespace="FTMS.Domain.Entities">
<class mutable="false" name="Country" table="Country" schema="MStar">
<id name="Id" column="Country_Id">
<generator class="native"></generator>
</id>
<property name="ShortCode" column="Country_ShortCode" />
<property name="LongCode" column="Country_LongCode" />
<property name="Name" column="Country_Name" />
<set name="Funds" lazy="true">
<key column="Fund_DomicileId"></key>
<one-to-many class="Fund"/>
</set>
</class>
</hibernate-mapping>
... и при всем этом я получаю следующее сообщение об ошибке:
The 'type' attribute is not declared.
В идеале результатом должен быть объект AFS, содержащий List<Country>
.Есть что-то очевидное, что я делаю не так?