Есть ли возможность установить отношение OneToOne (мощность) при генерации dbml с помощью SQLMetal? По умолчанию dbml-схема, сгенерированная с отношением OneToMany.OneToOne отношение (мощность) в LINQ to SQL с SQLMetal
ответ
Вы используете дизайнер DBML? Если это так, вы можете щелкнуть правой кнопкой мыши стрелку, представляющую взаимосвязь, и выбрать Свойства. Свойство Cardinality можно затем установить в диалоговом окне свойств OneToOne.
Да, я могу использовать конструктор DBML, но я хочу автоматизировать этот процесс! – Sasha
Если вы хотите, чтобы все * отношения были OneToOne, вы могли написать скрипт некоторого описания для анализа файла DBML (который является просто XML) для элементов 'Association' и добавить атрибут' Cardinality = «One» 'to each элемент. –
В моем случае мне нужно только два отношения, чтобы быть OneToOne. Но кажется, что в любом случае я напишу какой-то сценарий. – Sasha
Я использую SqlMetal для создания файла Dbml, а затем я использую xslt для изменения его содержимого (используя эту базу xslt: http://blogs.msdn.com/ploeh/archive/2008/04/10/AutomaticallyGeneratingLINQToSQLModelsFromTSQL.aspx), например. изменение мощности или изменение типа для Enums.
Спасибо, я попробую ваш подход. – Sasha
также кажется, что linq2sql поддерживает ссылки на главные ключи с обеих сторон, поэтому просто создайте одну ссылку (просто сравните нормальное отношение «один ко многим») и установите эту связь с кардинальной единицей. –
- это отношение, указывающее на первичный ключ на обеих таблицах? Или вторичная таблица имеет другой первичный ключ, и отношения идут в столбец внешнего ключа? –
Связь, указывающая на первичный ключ на обеих таблицах. – Sasha