У меня есть две таблицы с отношением один ко многим в SQL 2008. Первая таблица (BBD)
PK |BBDataID |ИНТ|Floor_Qty |TINYINT|Construct_Year |символ (4)|etc, etc
описывает данные, общие для всех зданий, а второй (BBDCerts)
PK |BBDCertsID |ИНТ|BBDataID |ИНТ|Certification_Type |VARCHAR (20)|etc, etc
- это набор сертификатов для конкретного здания.Таким образом, первичный ключ в BBD (BBDataID) сопоставляется с соответствующим полем в BBDCerts через отношение FK, но BBDCertsID является первичным ключом второй таблицы, а BBDataID - не потому, что он не будет уникальным.
Моя проблемаявляется то, что я хочу иметь возможность использовать сгенерированный ИЛИ контекст данных, чтобы попасть в список сертификатов, когда я получаю доступ к определенной записи в таблице BBD.Например:
Dim vals = (From q in db.BBD
Where q.BBDataID = x
Select q.Floor_Qty, q.Construct_Year, q.BBDCerts).SingleOrDefault
и более поздние версии смогут получить доступ к определенной сертификации, например:
vals.BBDCerts.Certification_Type.First
Теперь автоматические ассоциации, созданные при удалении таблиц SQL на поверхности конструктора, не имеютне генерировать ассоциации EntityRef, которые необходимы для доступа к другой таблице с использованием точечной нотации.Итак, Я должен использовать конструктор OR, чтобы сделать BBDCerts BBDataID первичным ключом (это не влияет на фактическую базу данных), а затем вручную изменить свойства ассоциации на соответствующие параметры OneToMany.
Возможно, есть лучший способ приблизиться к этому решению, но мой вопрос в том, насколько я это сделал безопасно?Я провел множество тестов, и каждый раз на правильный сертификат ссылаются или обновляют.Честно говоря, все это заставляет меня нервничать.