Re[7]: Linq with BLToolkit
От: olegkr  
Дата: 25.02.10 16:39
Оценка:
Здравствуйте, IT, Вы писали:

IT>которых в BLT нет. Пока.

Нужно ли?
Re[8]: Linq with BLToolkit
От: IT Россия linq2db.com
Дата: 25.02.10 16:44
Оценка:
Здравствуйте, olegkr, Вы писали:

IT>>которых в BLT нет. Пока.

O>Нужно ли?

Смотря как сделать. Так как это сделано в тяжёлых ORM, т.е. гвоздями прибито к мапперу, то точно не нужно. Если же сделать заменяемый DataContext, то вай бы и нот. Сейчас это только DbManager, но в планах уже Linq to Middleware, есть мысли насчёт SQL grabber, можно добавить и Entity Service или какие-то его элементы.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Linq with BLToolkit
От: IB Австрия http://rsdn.ru
Дата: 26.02.10 11:18
Оценка: +1
Здравствуйте, IT, Вы писали:

IT>Это всё элементы Entity Service (в частности это — Change Tracking), которых в BLT нет. Пока.

А может и не надо? Или только где-нибудь с боку, чтобы можно было выкинуть...
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Мы уже победили, просто это еще не так заметно...
Re[8]: Linq with BLToolkit
От: IT Россия linq2db.com
Дата: 26.02.10 14:09
Оценка:
Здравствуйте, IB, Вы писали:

IT>>Это всё элементы Entity Service (в частности это — Change Tracking), которых в BLT нет. Пока.

IB>А может и не надо? Или только где-нибудь с боку, чтобы можно было выкинуть...

Ну не надо так не надо.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Linq with BLToolkit
От: ili Россия  
Дата: 26.02.10 14:17
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, IB, Вы писали:


IT>>>Это всё элементы Entity Service (в частности это — Change Tracking), которых в BLT нет. Пока.

IB>>А может и не надо? Или только где-нибудь с боку, чтобы можно было выкинуть...

IT>Ну не надо так не надо.


а хотелось бы, но именно так, чтобы оно работало ровно тогда, когда надо... в общем, привода бы иметь хотелось.
Re[10]: Linq with BLToolkit
От: IT Россия linq2db.com
Дата: 26.02.10 14:21
Оценка:
Здравствуйте, ili, Вы писали:

ili>а хотелось бы, но именно так, чтобы оно работало ровно тогда, когда надо... в общем, привода бы иметь хотелось.


DbManager всё равно придётся отстёгивать от linq-провайдера, а там уже дело техники/желания.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Linq with BLToolkit
От: Plotyan Россия  
Дата: 27.02.10 11:57
Оценка:
Здравствуйте, Игорь Ткачёв, Вы писали:

Поддержка наследования в BLToolkit выполнена по образу и подобию наследования в Linq To SQL.

Почему именно так? Ведь теперь базовый класс обязан "знать" обо всех своих наследниках. А это не дает разбить модель на независимые части.
Re[2]: Linq with BLToolkit
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.02.10 12:22
Оценка:
Здравствуйте, Plotyan, Вы писали:

P>Почему именно так? Ведь теперь базовый класс обязан "знать" обо всех своих наследниках. А это не дает разбить модель на независимые части.


Варианты?
... << RSDN@Home 1.2.0 alpha 4 rev. 1464 on Windows 7 6.1.7600.0>>
AVK Blog
Re[3]: Linq with BLToolkit
От: Plotyan Россия  
Дата: 27.02.10 12:28
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Plotyan, Вы писали:


P>>Почему именно так? Ведь теперь базовый класс обязан "знать" обо всех своих наследниках. А это не дает разбить модель на независимые части.


AVK>Варианты?


Ну собственно знать о параметрах наследования (т.е. о типе и значении дискриминатора) нужно только при работе с наследником. Вот и указывать их в определении класса-наследника, т.е. только его и помечать атрибутом InheritanceMapping. Это, кстати, позволит для разных наследников использовать разные дискриминаторы.
Re[4]: Linq with BLToolkit
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.02.10 12:31
Оценка:
Здравствуйте, Plotyan, Вы писали:

P>Ну собственно знать о параметрах наследования (т.е. о типе и значении дискриминатора) нужно только при работе с наследником. Вот и указывать их в определении класса-наследника, т.е. только его и помечать атрибутом InheritanceMapping. Это, кстати, позволит для разных наследников использовать разные дискриминаторы.


А как об этом наследнике узнает собственно меппер? Сканировать все сборки, или явно где то их сбоку регистрировать?
... << RSDN@Home 1.2.0 alpha 4 rev. 1464 on Windows 7 6.1.7600.0>>
AVK Blog
Re[5]: Linq with BLToolkit
От: Plotyan Россия  
Дата: 27.02.10 12:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Plotyan, Вы писали:


P>>Ну собственно знать о параметрах наследования (т.е. о типе и значении дискриминатора) нужно только при работе с наследником. Вот и указывать их в определении класса-наследника, т.е. только его и помечать атрибутом InheritanceMapping. Это, кстати, позволит для разных наследников использовать разные дискриминаторы.


AVK>А как об этом наследнике узнает собственно меппер? Сканировать все сборки, или явно где то их сбоку регистрировать?


По идее тем же способом, каким он узнает о сборке, в которой определен базовый класс.

Кстати, каким? Извиняюсь за незнание азов, но моё знакомство с BLToolkit измеряется в минутах, статья была прочитано только что.
Re[6]: Linq with BLToolkit
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 27.02.10 12:44
Оценка:
Здравствуйте, Plotyan, Вы писали:

P>По идее тем же способом, каким он узнает о сборке, в которой определен базовый класс.


При чем тут сборка? Я спрашиваю про типы. Базовый тип указывается в запросе явно, как следствие мепперу сразу доступны все наследники. А вот если как ты предлагаешь — мепперу о наследниках узнать как?

P>Кстати, каким? Извиняюсь за незнание азов, но моё знакомство с BLToolkit измеряется в минутах, статья была прочитано только что.


Никаким. Базовый класс в запросе ты указываешь явно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1464 on Windows 7 6.1.7600.0>>
AVK Blog
Re[7]: Linq with BLToolkit
От: Plotyan Россия  
Дата: 27.02.10 12:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Plotyan, Вы писали:


P>>По идее тем же способом, каким он узнает о сборке, в которой определен базовый класс.


AVK>При чем тут сборка? Я спрашиваю про типы. Базовый тип указывается в запросе явно, как следствие мепперу сразу доступны все наследники. А вот если как ты предлагаешь — мепперу о наследниках узнать как?


Так же, как и о базовом типе.

P>>Кстати, каким? Извиняюсь за незнание азов, но моё знакомство с BLToolkit измеряется в минутах, статья была прочитано только что.


AVK>Никаким. Базовый класс в запросе ты указываешь явно.


Значит, явно указать в запросе наследника. Код из статьи:

from p in db.DiscontinuedProduct
select p;

или

from c in db.Product
where c is Northwind.DiscontinuedProduct
select c;


В первом случае тип наследника известен на момент создания "контекста" и маппер сможет разобраться с наследованием. Во втором это придется делать во время разбора выражения.
Re[8]: Linq with BLToolkit
От: IT Россия linq2db.com
Дата: 27.02.10 15:39
Оценка:
Здравствуйте, Plotyan, Вы писали:

Не получится. Вот такой запрос

from c in db.Product select c;


должен вернуть объекты не родительского типа, а наследников.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Linq with BLToolkit
От: ili Россия  
Дата: 28.02.10 07:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>При чем тут сборка? Я спрашиваю про типы. Базовый тип указывается в запросе явно, как следствие мепперу сразу доступны все наследники. А вот если как ты предлагаешь — мепперу о наследниках узнать как?


аналогом IObjectFactory?
Re[9]: Linq with BLToolkit
От: ili Россия  
Дата: 28.02.10 08:01
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Plotyan, Вы писали:


IT>Не получится. Вот такой запрос


IT>
IT>from c in db.Product select c;
IT>


IT>должен вернуть объекты не родительского типа, а наследников.


вот кстати, допустим у продукта есть такой наследник (наследование в одной таблице):

public class ProductEx : Product
{
    public int SomeValue { get; set; }
}


то с приведенного запроса он тоже выберется, его создание я могу разрулить IObjectFactory, но св-во SomeValue будет незаполненным?
Re[9]: Linq with BLToolkit
От: Plotyan Россия  
Дата: 28.02.10 12:33
Оценка:
Здравствуйте, IT, Вы писали:

IT>Не получится. Вот такой запрос


IT>
IT>from c in db.Product select c;
IT>


IT>должен вернуть объекты не родительского типа, а наследников.


Хм, тут не понял. Если Product — это базовый класс, то тут два варианта:
1. запрос возвращает все записи, включая всех наследников, в виде Product.
2. запрос возвращает только объекты класса Product, без наследников.

В первом случае все хорошо, а во втором да, нужно знать обо всех наследниках, чтобы их не выбрать. Но вроде первый вариант более логичен?
Re[10]: Linq with BLToolkit
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.10 12:50
Оценка:
Здравствуйте, Plotyan, Вы писали:

P>Хм, тут не понял. Если Product — это базовый класс, то тут два варианта:

P> 1. запрос возвращает все записи, включая всех наследников, в виде Product.
P> 2. запрос возвращает только объекты класса Product, без наследников.

Если есть наследование, то должен быть полиморфизм, иначе все бессмысленно. А если есть полиморфизм, то когда я обращаюьс к абстрактному Product, реально должны создаваться экземпляры конкретных наследников.
P.S. Вообще, ИМХО, если уж заморачиваться наследованием, то нужно поддержать все три общеприменимых типа.
... << RSDN@Home 1.2.0 alpha 4 rev. 1464 on Windows 7 6.1.7600.0>>
AVK Blog
Re[11]: Linq with BLToolkit
От: Plotyan Россия  
Дата: 28.02.10 13:50
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Plotyan, Вы писали:


P>>Хм, тут не понял. Если Product — это базовый класс, то тут два варианта:

P>> 1. запрос возвращает все записи, включая всех наследников, в виде Product.
P>> 2. запрос возвращает только объекты класса Product, без наследников.

AVK>Если есть наследование, то должен быть полиморфизм, иначе все бессмысленно. А если есть полиморфизм, то когда я обращаюьс к абстрактному Product, реально должны создаваться экземпляры конкретных наследников.


Таки да, торможу...
Re: Linq with BLToolkit
От: Plotyan Россия  
Дата: 28.02.10 13:58
Оценка:
Здравствуйте, Игорь Ткачёв, Вы писали:

ИТ>...


Можно ли задать параметры ассоциаций и наследования через XML схему маппинга?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.