У меня есть объект с именем Market
в моем приложении C # 4:
public class Market : BusinessBase
{
public Market()
{
}
public virtual int Id { get; set; }
public virtual string Symbol { get; set; }
public virtual string Description { get; set; }
}
У меня есть таблица с именем markets
в SQL Server:
CREATE TABLE [dbo].[markets](
[marketId] [int] IDENTITY(1,1) NOT NULL,
[symbol] [varchar](10) NOT NULL,
[description] [varchar](30) NOT NULL,
[version] [int] NOT NULL,
CONSTRAINT [PK_markets] PRIMARY KEY CLUSTERED
([marketId] ASC)
GO
CREATE UNIQUE NONCLUSTERED INDEX [NIDX_markets_symbol] ON [dbo].[markets] ([symbol] ASC)
GO
Мой файл сопоставлениявыглядит так:
<class name="MooDB.BusinessLayer.Market" table="markets">
<id name="Id" column="marketId" type="Int32">
<generator class="native" />
</id>
<version name="Version" column="version" type="integer" unsaved-value="0" />
<property name="Symbol" column="symbol" type="string" length="10" />
<property name="Description" column="description" type="string" length="30" not-null="true" />
</class>
Я могу получить рынок из базы данных по Id, просто используя этот метод:
public Market GetMarketById(int marketId)
{
ISession session = GetSession();
return session.Get<Market>(marketId);
}
Я хочу сделать то же самое, но вместо этого передать Символ.Символ принудительно задан в базе данных, и я хочу вернуть объект Market.Я пытаюсь этот код:
public Market GetMarketBySymbol(string symbol)
{
ISession session = GetSession();
return session.Get<Market>(symbol);
}
Я знаю, что это неправильно , но есть ли способ вернуть один объект, который отображается в одну уникальную строку в базе данных, но не восстановить его по ПК?Я мог бы просто получить <IList>
объектов Market и затем просто вернуть объект, используя 'foreach', но мне это не по вкусу.