powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Relation -> Cascade -> Expression
2 сообщений из 2, страница 1 из 1
Relation -> Cascade -> Expression
    #33834925
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
						DataColumn
							tmpDataColumn;

						SQLText="MasterTable";
						ds.Tables.Add(SQLText);
						tmpDataColumn=ds.Tables[SQLText].Columns.Add("Id",typeof(long));
						tmpDataColumn.AllowDBNull=false;
						tmpDataColumn.Unique=true;
						tmpDataColumn.AutoIncrement=true;
						tmpDataColumn.AutoIncrementSeed=- 1 ;
						tmpDataColumn.AutoIncrementStep=- 1 ;
						ds.Tables[SQLText].Columns.Add("Name",typeof(string));
						ds.Tables[SQLText].PrimaryKey=new DataColumn[]{ds.Tables[SQLText].Columns["Id"]};

						SQLText="DetailsTable";
						ds.Tables.Add(SQLText);
						tmpDataColumn=ds.Tables[SQLText].Columns.Add("Id",typeof(long));
						tmpDataColumn.AllowDBNull=false;
						tmpDataColumn.Unique=true;
						tmpDataColumn.AutoIncrement=true;
						tmpDataColumn.AutoIncrementSeed=- 1 ;
						tmpDataColumn.AutoIncrementStep=- 1 ;
						ds.Tables[SQLText].Columns.Add("MasterId",typeof(long));
						ds.Tables[SQLText].Columns.Add("Sum",typeof(decimal));
						ds.Tables[SQLText].PrimaryKey=new DataColumn[]{ds.Tables[SQLText].Columns["Id"],ds.Tables[SQLText].Columns["MasterId"]};

						string
							RelationName="Master_Details";
						
						ForeignKeyConstraint
							_fk_;

						ds.Tables[SQLText].Constraints.Add(_fk_=new ForeignKeyConstraint("fk"+RelationName,ds.Tables["MasterTable"].Columns["Id"],ds.Tables["DetailsTable"].Columns["MasterId"]));
						_fk_.UpdateRule=Rule.Cascade;
						_fk_.DeleteRule=Rule.Cascade;
						ds.Relations.Add(RelationName,ds.Tables["MasterTable"].Columns["Id"],ds.Tables["DetailsTable"].Columns["MasterId"]);
						SQLText="MasterTable";
						ds.Tables[SQLText].Columns.Add("TotalSum",typeof(decimal),"Sum(Child("+RelationName+").Sum)");
Заполняем, смотрим - все сухо

далее делаем
Код: plaintext
1.
ds.Tables["MasterTable"].Rows[ 0 ]["Id"]= 13 ;
Каскадирование происходит, но в "MasterTable"."TotalSum" - NULL

Что нужно ышо покрутитЪ/подкрутитЪ/пнутЪ чтобы забегало?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Relation -> Cascade -> Expression
    #33835712
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лечится
Код: plaintext
1.
2.
ds.Tables["MasterTable"].Rows[ 0 ]["Id"]= 13 ;
ds.Tables["MasterTable"].Columns["TotalSum"].Expression="Sum(Child("+RelationName+").Sum)";
Но, IMHO, это изврат чистейшей воды... Неужели ничего в DataColumn нет а-ля LiveUpdate (Потому как если грохнуть relation, то значение в TotalSum остается, хотя, IMHO, было бы логичнее его в NULL сбрасывать)?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Relation -> Cascade -> Expression
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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