Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate-2.1.2.GA && inherited classes / 4 сообщений из 4, страница 1 из 1
14.04.2010, 10:23
    #36577940
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate-2.1.2.GA && inherited classes
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
14.04.2010, 10:28
    #36577948
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate-2.1.2.GA && inherited classes
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
14.04.2010, 10:33
    #36577956
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate-2.1.2.GA && inherited classes
Добавляем
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
14.04.2010, 10:43
    #36577979
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NHibernate-2.1.2.GA && inherited classes
P.S. Sorry, что частями - одним куском не постилось Ж8-/
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate-2.1.2.GA && inherited classes / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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