Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Dlinq -> SQL база 
:(
    Опции темы
nspace
Дата 16.2.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 16.2.2007

Репутация: нет
Всего: нет



Есть DlinqObject сделанный в дизайнере, перетаскиванием с ServerExplorer-а
в table1, допустим, 3 колонки: a, b, Id - primary key
Как сделать что-бы Id автоматически генерировался, и его можно было взять и записать в связанные таблицы
Код

elm.a = "dfgre";
elm.b = "fwef";
//elm.Id ???
dataContext.table1.Add(elm);
dataContext.SubmitChanges();


Это сообщение отредактировал(а) nspace - 16.2.2007, 17:33
PM MAIL   Вверх
Exception
Дата 19.2.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 2
Всего: 186



Цитата(nspace @  16.2.2007,  10:18 Найти цитируемый пост)
Как сделать что-бы Id автоматически генерировался


Это ж в самой базе делается обычно?..
PM   Вверх
namespace
Дата 19.2.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Да я думал может в Dlinq фишки такие есть. smile 
Еще вопросик: установил я в базе автогенератор, инкремент,
а вот как-бы через DlinqObject, минимальными затратами, этот ключик получить для добавления в связанную таблицу smile 
спасибо

PM MAIL   Вверх
Idsa
Дата 19.2.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



У тебя есть поле с autoincrement=true. И в чем проблема при выборке записей считать и это поле?


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
namespace
Дата 27.2.2007, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Есть DlinqObject сделанный в дизайнере, перетаскиванием с ServerExplorer-а
в table1, допустим, 3 колонки: a, b, Id - primary key
Как сделать что-бы Id автоматически генерировался, и его можно было взять и записать в связанные таблицы
Код

elm.a = "dfgre";
elm.b = "fwef";
//elm.Id ???
dataContext.table1.Add(elm);
dataContext.SubmitChanges();

да генерация ключа это в базе, самое главное в дизайнере DlinkObjects тоже установить что поле идентификатор и автогенерируется, а вот со связанной таблицей в Dlink проще пареной репы оказалось
предположим в табличке elm значение elm.mainId должно быть как в таблице par (экземпляр parent) par.mainId,
то в дизайнере DlinkObjects надо установить связь между указанными полями и тогда можно писать:
Код


elm.a = "dfgre";
elm.b = "fwef";
elm.parent = par; 
dataContext.table1.Add(par);
dataContext.table1.Add(elm);
dataContext.SubmitChanges();

и все Ж)

и кстати не подскажите можно ли без датасетов и ридеров сделать из таблицы длинка бинд на комбобох?
PM MAIL   Вверх
namespace
Дата 1.3.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



есть две таблицы family и children с отношением family.familyIN - primary key, children.familyIN - foreign key
Код

            var removeF =
                from rem in dc.families
                where rem.familyIN == 18
                select rem;

            dc.families.RemoveAll(removeF);
            dc.SubmitChanges();

так вот из основной таблицы удаление записи проходит нормально
Код

            var removeC =
                from rem in dc.childrens
                where rem.familyIN == 10
                select rem;
                
            dc.childrens.RemoveAll(removeC);
            dc.SubmitChanges();

а из children выдает исключение Object reference not set to an instance of an object. на вот этот код:
Код

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.Data.DLinq.Association(Name="FK_familyIN", Storage="_family", ThisKey="familyIN", IsParent=true)]
        public family family {
            get {
                return this._family.Entity;
            }
            set {
                if ((this._family.Entity != value)) {
                    this.OnPropertyChanging("family");
                    if ((this._family.Entity != null)) {
                        this._family.Entity = null;
=>                    this._family.Entity.FK_familyIN.Remove(this);
                    }
                    this._family.Entity = value;
                    if ((value != null)) {
                        value.FK_familyIN.Add(this);
                    }
                    this.OnPropertyChanged("family");
                }
            }
        }

PM MAIL   Вверх
mr.DUDA
Дата 2.3.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



foreign key есть, а вот есть ли DataRelation ?


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 2.3.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 2
Всего: 186



Цитата(namespace @  1.3.2007,  23:38 Найти цитируемый пост)
а из children выдает исключение Object reference not set to an instance of an object. на вот этот код:


Так посмотри в дебуге, на какой объект указывает исключение.
Так делать выводы не очень-то легко.
PM   Вверх
namespace
  Дата 14.3.2007, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Код

                   if ((this._family.Entity != null)) {
                       this._family.Entity = null;   :))))))))))))
                        this._family.Entity.FK_familyIN.Remove(this);
                   }

Глючная студия smile , она явно что-то сгенерировала лишнее  smile 
так что все работает.

А насчет не использования датариедеров и датасетов, вот пример как загнать в комбобокс:
Код

            //steets таблица с улицами ID (int) - идентификатор, name (string) - название
            comboBox1.DataSource = dc.streets.ToList();
            comboBox1.DisplayMember = "name";//поле которое будет видно в комбобоксе
            comboBox1.ValueMember = "ID";//поле являющееся значением 
            //теперь достаточно обратитьтся к свойству SelectedValue
            //которое содержит значение соответствующее выбранному элементу
            //привести его к нужному типу,т.к. оно содержит тип object
            //Convert.ToInt32(comboBox1.SelectedValue);

кстати можно и резултат запроса загнать короче IEnumerable

Dlink классная штука, скорей бы релиз вышел
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.