Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > прикрутить NHibernate


Автор: MFSham 7.5.2008, 17:00
При создании web приложения в vs2005 namespace не используется по умолчанию, в отличии от WinForms.

Когда прикручиваешь NHibernate в WinForms, то в конфиге указываешь имя сборки приложения. 
Код

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory>            
            <property name="hibernate.dialect">NHibernate.Dialect.MsSql2005Dialect</property>
            <property name="hibernate.connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
            <property name="hibernate.connection.connection_string">Server=localhost;initial catalog=MyCatalog;Integrated Security=SSPI</property>
            <property name="hibernate.connection.driver_class">NHibernate.Driver.SqlClientDriver</property>

            <mapping assembly="MyAssembly"/>      <!--  указываем имя сборки -->            
        </session-factory>
    </hibernate-configuration>

Да и в *.hbm.xml файлах имя собрки указывается не раз.

А что делать в web приложением где namespace отсутствует? Самому что-ли ручками везде добавить и прокатит ли такой вариант?

Автор: Zakonnic 8.5.2008, 13:04
Недавно делал какую-то штуку, где надо было указать имя сборки, а класс лежал в папке App_Code. Прокатило написать "APP_CODE" вместо сборки.

Еще можно глянуть Object Browser-ом (Ctrl+Alt+J), выбрав My Solution.

Автор: MFSham 8.5.2008, 17:43
Указал "App_Code", прокатило, но в конфиг добавляются только embedded resource. В web приложении установить файл присоединенным нельзя.
Цитата

You can only embed resources in projects that have a dll as their ultimate output.  Thus, you cannot embed resources in your web project, unless you are using the new Web Application Project.


Можно конечно сделать так
Цитата

Use two projects.

Your first project should be an Assembly project which can contain your domain objects an mapping files. In this project you should be able to select a mapping file and the properties dialog should allow you to change the file to an Embedded Resource.

Your second project can be a web project and you can then reference your first project from it. In this project your configuration can be set up to automatically use the mappings from your other project by using the <mapping assembly="your_first_project" /> tag in the <session-factory> node where your_first_project refers to the project I'm talking about in my last paragraph. 

Но чего-то жутко не хочется ради этого создавать отдельный проект. Может кто знает как по другому?

Добавлено через 4 минуты и 28 секунд
Да и System.Web.UI.WebResourceAttribute сюда не особо-то и прикрутишь, т.к. 
Цитата

It is valid only when used on assembly declarations and it is used to enable a specified embedded resource in an assembly for use as a Web resource.


Добавлено через 6 минут и 7 секунд
Цитата(Zakonnic @  8.5.2008,  13:04 Найти цитируемый пост)
Еще можно глянуть Object Browser-ом (Ctrl+Alt+J), выбрав My Solution. 

Solution'a нету, в том то и дело smile

Автор: MFSham 10.5.2008, 03:04
Неужели никто не прикручивал NHibernate в 2005 студии к web проекту?? Что-то слабо верится :(

Автор: PashaPash 10.5.2008, 12:27
MFSham, поставь патч  Web Application Projects, или просто SP1 на студию и сконвертируй Web Site в Web App. 
Или, как серьезный разработчик, вынеси бизнес-логику в отдельный проект.

Автор: Veitmen 12.5.2008, 10:42
Цитата(PashaPash @  10.5.2008,  12:27 Найти цитируемый пост)
MFSham, поставь патч  Web Application Projects, или просто SP1 на студию и сконвертируй Web Site в Web App. 
Или, как серьезный разработчик, вынеси бизнес-логику в отдельный проект. 

Да, совершенно правильное решение. Особенно верно выглядит первое с сервис паком. 

Цитата(MFSham @  10.5.2008,  03:04 Найти цитируемый пост)
Неужели никто не прикручивал NHibernate в 2005 студии к web проекту?? Что-то слабо верится :( 


Прикручивал. В конце концов к сайту можно добавлять Reference, так что логика у меня была в отдельной сборке. 

Автор: MFSham 12.5.2008, 19:03
Цитата(PashaPash @  10.5.2008,  12:27 Найти цитируемый пост)
MFSham, поставь патч  Web Application Projects, или просто SP1 на студию и сконвертируй Web Site в Web App. 

то что нужно ;)

спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)