powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate-2.1.2.GA && inherited classes
4 сообщений из 4, страница 1 из 1
NHibernate-2.1.2.GA && inherited classes
    #36577940
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ClassStaff.cs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
using System;
 
namespace TestIII
{
	public class ClassStaff
	{
		int
			_ID;
 
		string
			_Name;
 
		decimal
			_Salary,
			_SalaryAdd;
 
		DateTime
			_BirthDate;
 
		public virtual int ID
		{
			get
			{
				return _ID;
			}
			set
			{
				if (_ID != value)
					_ID = value;
			}
		}
 
		public virtual string Name
		{
			get
			{
				return _Name;
			}
			set
			{
				if (_Name != value)
					_Name = value;
			}
		}
 
		public virtual decimal Salary
		{
			get
			{
				return _Salary;
			}
			set
			{
				if (_Salary != value)
					_Salary = value;
			}
		}
 
		public virtual decimal SalaryAdd
		{
			get
			{
				return _SalaryAdd;
			}
			set
			{
				if (_SalaryAdd != value)
					_SalaryAdd = value;
			}
		}
 
		public virtual DateTime BirthDate
		{
			get
			{
				return _BirthDate;
			}
			set
			{
				if (_BirthDate != value)
					_BirthDate = value;
			}
		}
	}
}

ClassStaff.hbm.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" namespace="TestIII" assembly="TestIII">
 
	<class name="ClassStaff" table="Staff" lazy="true">
		<id name="ID">
			<generator class="native" />
		</id>
		<property name="Name" column ="Name"/>
		<property name="Salary" column ="Salary"/>
		<property name="SalaryAdd" formula="(select s.Salary from Staff s where (s.ID=ID))"/>
		<!-- <property name="BirthDate" column ="BirtDate"/> -->
	</class>

</hibernate-mapping>

То, что BirthDate не map'ится - так трэба.
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
NHibernate-2.1.2.GA && inherited classes
    #36577948
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
main.cs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
using System;
using System.Collections.Generic;
using System.Reflection;
using NHibernate;
using NHibernate.Cfg;
 
namespace TestIII
{
	class Program
	{
		static ISessionFactory
			SessionFactory;

		static void Main(string[] args)
		{
			try
			{
				using (ISession session = OpenSession())
				{
					IQuery
						query;

					ClassStaff
						tmpClassStaff=session.Get<ClassStaff>( 1 );

					query = session.CreateQuery("select s from ClassStaff s where s.ID in (:ID)");
					query.SetParameterList("ID", new object[] {  1 ,  3 ,  5  });

					List<ClassStaff>
						ClassStaffRecords = (List<ClassStaff>)query.List<ClassStaff>();
 
					foreach (ClassStaff s in ClassStaffRecords)
					{
						;
					}

					/*
					query = session.GetNamedQuery("NamedQuery1");
					query.SetParameter("pID",3);

					List<ClassStaffWithReallyBirthDate>
						ClassStaffWithReallyBirthDateRecords = (List<ClassStaffWithReallyBirthDate>)query.List<ClassStaffWithReallyBirthDate>();

					foreach (ClassStaffWithReallyBirthDate s in ClassStaffWithReallyBirthDateRecords)
					{
						;
					}
					*/
				}
			}
			catch (Exception e)
			{
				Console.WriteLine(e);
			}
		}
 
		static ISession OpenSession()
		{
			if (SessionFactory == null)
			{
				Configuration
					configuration = new Configuration();

				configuration.AddAssembly(Assembly.GetCallingAssembly());
				SessionFactory = configuration.BuildSessionFactory();
			}
 
			return SessionFactory.OpenSession();
		}
	}
}

Все - сухо.
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
NHibernate-2.1.2.GA && inherited classes
    #36577956
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляем
ClassStaffWithReallyBirthDate.cs
Код: plaintext
1.
2.
3.
class ClassStaffWithReallyBirthDate : ClassStaff
{
}

ClassStaffWithReallyBirthDate.hbm.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" namespace="TestIII" assembly="TestIII">

	<class name="ClassStaffWithReallyBirthDate">
		<id name="ID">
			<generator class="native" />
		</id>
		<property name="Name" column ="Name"/>
		<property name="Salary" column ="Salary"/>
		<property name="BirthDate" column ="BirthDate"/>
	</class>

	<sql-query name="NamedQuery1">
		<return alias="SmthAlias" class="TestIII.ClassStaffWithReallyBirthDate" />
		<![CDATA[
			select
				s.*,
				cast('20101231' as datetime) as BirthDate
			from
				Staff s
			where
				s.ID=:pID
		]]>
	</sql-query>

</hibernate-mapping>

И на выше указанной строке падаем с
NHibernate
select
classstaff0_.ID as ID1_,
classstaff0_.Name as Name1_,
classstaff0_.Salary as Salary1_,
==> classstaff0_.BirthDate as BirthDate1_
from
==> >>>ClassStaffWithReallyBirthDate<<< classstaff0_
where
classstaff0_.ID in (@p0 , @p1 , @p2);
@p0 = 1, @p1 = 3, @p2 = 5

С какой-такой радости ClassStaffWithReallyBirthDate если ж черным по белому
Код: plaintext
1.
2.
List<ClassStaff>
	ClassStaffRecords = (List<ClassStaff>)query.List<ClassStaff>();
?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
NHibernate-2.1.2.GA && inherited classes
    #36577979
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Sorry, что частями - одним куском не постилось Ж8-/
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate-2.1.2.GA && inherited classes
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]