powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / FK -> Relations
2 сообщений из 2, страница 1 из 1
FK -> Relations
    #33485771
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что разве создание FK автоматом не модифицирует Relations?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
public class MyDS: DataSet
{
   Tables.Add("TestTable");
   Tables["TestTable"].Columns.Add("Id",typeof(int));
   Tables["TestTable"].Columns.Add("Name",typeof(string));
   Tables["TestTable"].PrimaryKey=new DataColumn[]{Tables["TestTable"].Columns["Id"]};

   Tables.Add("TestTableDetail");
   Tables["TestTableDetail"].Columns.Add("Id",typeof(int));
   Tables["TestTableDetail"].Columns.Add("SubId",typeof(int));
   Tables["TestTableDetail"].PrimaryKey=new DataColumn[]{Tables["TestTableDetail"].Columns["Id"],Tables["TestTableDetail"].Columns["SubId"]};

   ForeignKeyConstraint
     fk=new ForeignKeyConstraint("fk_Master_Detail",Tables["TestTable"].Columns["Id"],Tables["TestTableDetail"].Columns["Id"]);

   fk.DeleteRule=Rule.Cascade;
   fk.UpdateRule=Rule.Cascade;
   Tables["TestTableDetail"].Constraints.Add(fk);
   Tables["TestTableDetail"].Columns.Add("Name",typeof(short),"Parent(fk_Master_Detail).Name");
}
получаю
Object reference not set to an instance of an object.
нужно еще добавить
Код: plaintext
1.
2.
3.
4.
5.
6.
...
DataRelation
  rel=new new DataRelation("fk_Master_Detail",Tables["TestTable"].Columns["Id"],Tables["TestTableDetail"].Columns["Id"]);

Relations.Add(rel);
Tables["TestTableDetail"].Columns.Add("Name",typeof(short),"Parent(fk_Master_Detail).Name");
Тогда работает, но, IMHO, это уже масло масленое получается... По большому счету весь сыр бор с FK только из-за установки cascade. Потому как быстро и красиво посредством Tables["TestTableDetail"].Constraints к полученному при Relations.Add() FK хрен достучишЪся. Или я где-то чего-то недопонял/пропустил?
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
FK -> Relations
    #33486006
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порулить правилами каскадирования оказалось просто:
Код: plaintext
1.
(Tables["TestTableDetail"].Constraints.["fk_Master_Detail"] as System.Data.ForeignKeyConstraint).DeleteRule=Rule.Cascade;
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / FK -> Relations
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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