Свободные классы NHibernate как код для классов домена - PullRequest
4 голосов
/ 08 мая 2009

Хорошо, поэтому я хочу создать код для классов, не являющихся aspx. У меня есть файлы сопоставления (классы), которые я хочу показать в проекте как код для Entites Есть ли способ сделать это в VS2008.

Ответы [ 3 ]

1 голос
/ 08 мая 2009

Похоже, вы говорите о файлах, которые отображаются как вложенные в обозревателе решений. Файлы ASP.NET Codebehind являются лишь одним примером этого.

То, что вы хотите в файле проекта, выглядит примерно так:

<ItemGroup>
    <EmbeddedResource Include="Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
      <SubType>Designer</SubType>
    </EmbeddedResource>
</ItemGroup>
<ItemGroup>
    <Compile Include="Resources.Designer.cs">
      <DependentUpon>Resources.resx</DependentUpon>
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
    </Compile>
</ItemGroup>

Я считаю, что это <DependentUpon> элемент, который указывает на вложение.

1 голос
/ 08 мая 2009

Вы можете создать дизайнерский файл, назвав его Class.Designer. (Vb или cs), и он будет отображаться как код позади любого создаваемого вами класса. Однако один из классов должен быть частичным.

0 голосов
/ 28 мая 2009

Я действительно заставил это работать. Теперь все «Map», отображаемые как код позади классов для моих сущностей, экономят мне много времени при поиске Mapping для сущности. Вот как это выглядит в файле проекта.

<Compile Include="Entities\OrderMap.cs">
  <DependentUpon>Order.cs</DependentUpon>
</Compile>

Мы также создали шаблон, чтобы можно было просто щелкнуть правой кнопкой мыши, выбрать добавить объект NH, и он будет сохранен в проекте, как показано выше. Единственной проблемой сейчас является переименование объекта, нужно зайти в проект и вручную изменить имя. Но это случается не так часто и является небольшим компромиссом для повышения производительности.

...