|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
К сожалению приходится строить сущность (бизнес объект можно сказать) из двух контекстов. Очень неудобно. Нельзя в одном "запросе" обращаться к разным контекстам или я что-то упустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 14:54 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
netivan, Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 17:12 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
netivanНельзя в одном "запросе" обращаться к разным контекстам Это, к сожалению, ограничение ORM. В таких случаях приходят на помощь вьюхи, табличные функции или хранимые процедуры. Ничего не поделать с этим злом... Но я бы лучше захардкодил запрос в своём репозитории (или что там у тебя) с маппингом на класс. Что-то типа такого: http://codearticles.ru/Home/ArticleView/2147 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 17:44 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Добавлю еще http://rachel53461.wordpress.com/2011/05/22/tricking-ef-to-span-multiple-databases/ Создают синонимы, генерят две EF Model'и мержат и т. п.. Вобщем на вкус. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 17:49 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Lord British, стрёмный недокументированный способ. Ковыряния в XML edmx файлов к добру не приведут, завтра выйдет новый релиз EF с измененной структурой XML и после какого-нибудь Run Custom Tool всё упадет нафик. Я бы так не делал. Да и завязываться на синонимы (чисто сиквельная фича) я не стал бы. Уж лучше вьюху написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 17:57 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Lord British, я пожалуй соглашусь тут с МСУ, т..к недокументированный способ может выйти боком. Наверное "захардкодить" sql и сделать ему маппинг в dao самый быстрый вариант. Сейчас пока сделал 2 коллекции - таблицы, но в уме держу исправить это на запрос. Все немного осложняется тем, что есть методы где используется select и whereExpressione. Надо их транслировать будет в обычный SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 18:13 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
EDMX документирован (как минимум storage, concept, mapping). Даже книжки есть где он разжеван Bochicchio Daniele - EF 4. Это примерно также как XML-маппинг в хибере. По поводу остального спорно, но не зная что там у автора наваяли, врядли есть смысл рассуждать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 18:41 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Lord British, Я даже больше скажу. CSDL, SSDL, mapping, настолько самостоятельное, что можно даже рядом со сборкой закинуть или вкомпилить в сборку. Или иметь CSDL и mapping один и тот же, а SSDL запилить под разные СУБД и т. п.. Главное скармливать их правильно в EntityConnectionString. PS. Я тут это просвящаюсь на праздниках. Тему заводил давече. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 19:05 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Lord BritishEDMX документирован (как минимум storage, concept, mapping). Даже книжки есть где он разжеван Bochicchio Daniele - EF 4. Не совсем всё так хорошо, как ты думаешь. EDMX рекомендуется майкрософтом модифицировать с помощью дизайнера. Да, конечно, они допускают возможность вносить правки руками, но только для неподдерживаемого функционала самого дизайнера (таких фич немного). http://msdn.microsoft.com/ru-ru/library/cc982042(VS.100).aspx EDMX-файл — это XML файл, определяющий концептуальную модель, режим хранения и их сопоставление. Кроме того, EDMX-файл содержит сведения, используемые конструктором моделей EDM ADO.NET (конструктор сущностей) для подготовки модели к просмотру в графическом режиме. Рекомендуется производить создание EDMX-файла с помощью мастера моделей EDM. Дополнительные сведения см. в разделе Как создать новый EDMX-файл (средства модели EDM). То есть тебе четко черным по-белому говорится в документации, что, товарищ, не лезь руками в EDMX. При этом они соглашаются, что существуют сценарии, при которых придется изменять EDMX-файл вручную, там 5 сценариев, которые пока в дизайнере поленились сделать. Lord BritishЭто примерно также как XML-маппинг в хибере. Не путай божий дар с яичницей. В хибере нет дизайнера, и кроме как писать маппинги на XML (*.hbm файлы) - других вариантов нет. И только через несколько лет придумали Fluent-маппинги, потому что людям реально наста..ело ковыряться в этом XML, чуток ошибся или дрогнула рука - вся модель порушилась. Сиди потом выноси моск, где там оно что упало. Позже, конечно, был выпущен дизайнер, но он сторонний и платный - есть далеко не у каждого. Вот такая картина маслом. P.S. Поэтому-таки я бы настоятельно не стал ориентироваться на ручное вмешательство в код, да еще и таким жестким способом, как мерж EDMX файлов через какие-то там магические манипуляции с нодами XML документа. Есть дизайнер и точка. Иначе - CodeFirst. Всё остальное от лукавого. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2013, 21:41 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
МСУ, авторНе путай божий дар с яичницей. В хибере нет дизайнера, и кроме как писать маппинги на XML (*.hbm файлы) - других вариантов нет. Никто ничего не путает. И речь не шла о дизайнере. *.csdl, *.ssdl, *.msl могут существовать без *.edmx, как самостоятельные файлы. эти три самостоятельных единицы. можно сказать аналог *.hbm, просто более болтливый . ничего designer-specific в этих трех единицах нет. а сам edmx это просто контейнер, который в том числе содержит VS-specific фичи. если посмотришь, то при компиляции проекта этот edmx раскидывается по трем файлам *.csdl, *.ssdl, *.msl и вкомпиливаются в Assembly как ресурсы, ои могут даже распространяться, как контент к сборке. EntityFramework'у совершенно не нужен в рантайме *.edmx. Сам edmx создан исключительно для поддержки со стороны дизайнера студии. авторРекомендуется производить создание EDMX-файла с помощью мастера моделей EDM ... То есть тебе четко черным по-белому говорится в документации, что, товарищ, не лезь руками в EDMX. Они не говорят, они рекомендуют и судя по-всему только потому, что это избавляет писателя кода от рутины. Вероятно, в этом контексте можно понимать фразу. В любом случае она требует уточнения. Я так понимаю публикация документации CSDL, SSDL,MSL аргумент в сторону - публичное, документированное. Там все есть. Они даже версии спецификаций ведут. http://msdn.microsoft.com/en-us/data/jj652004 авторДа и завязываться на синонимы ( чисто сиквельная фича ) я не стал бы. Уж лучше вьюху написать. Есть дизайнер и точка. Иначе - CodeFirst. Всё остальное от лукавого. В этом случае (использование CodeFirst API) синонимы тоже рулят. И это, вообще говоря, не только MS SQL фича, как минимум еще Oracle умеет. Ну, а там где не умеет, можно вьюху написать. PS. Религиозные вопросы я считаю. Автор все равно сделает согласно своему чутью, так что. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 00:27 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
Lord BritishEntityFramework'у совершенно не нужен в рантайме *.edmx. Сам edmx создан исключительно для поддержки со стороны дизайнера студии. Я и не утверждал про рантайм, модель в DbFirst должна создаваться из дизайнера и только из него. Кому сейчас нужны ручные ковыряния в унылом xml? Lord BritishОни не говорят, они рекомендуют и судя по-всему только потому, что это избавляет писателя кода от рутины. Не от рутины, а от потенциальных ошибок. Следовать рекомендациям - хорошая практика. Lord BritishВероятно, в этом контексте можно понимать фразу. В любом случае она требует уточнения. Я так понимаю публикация документации CSDL, SSDL,MSL аргумент в сторону - публичное, документированное. Насчет документирования согласен, погорячился в начале - спецификации есть. Но заморачивать разработчика ими я бы не стал - кому нужен этот геморой со всеми вытекающими. Разработчик пусть сосредотачивается на прикладной задаче, а не на ковыряниях в xml, в котором легко ошибиться. Ручные xml маппинги - зло. Lord BritishВ этом случае (использование CodeFirst API) синонимы тоже рулят. И это, вообще говоря, не только MS SQL фича, как минимум еще Oracle умеет. Ну, а там где не умеет, можно вьюху написать. О том и речь, лучше вьюху. Lord BritishPS. Религиозные вопросы я считаю. Автор все равно сделает согласно своему чутью, так что. :) Ок, я высказал чисто своё мне по вопросу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 09:38 |
|
как вы работаете с двумя БД
|
|||
---|---|---|---|
#18+
а если нет edmx? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 11:18 |
|
|
start [/forum/topic.php?fid=17&fpage=29&tid=1350140]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 175ms |
0 / 0 |