Являются ли свойства защищенных объектов в EF 4 плохой идеей для служб данных? - PullRequest
0 голосов
/ 01 сентября 2010

После некоторой головной боли NullReferenceException из глубины System.Data.Services я обнаружил, что службам данных не нравятся свойства в модели EF, помеченные как защищенные.

Исключение возникает, когда служба данных инициализируется ипытается сгенерировать метаданные для модели EF.Очевидно, Microsoft решила создать исключение NullReferenceException при отражении здесь защищенных свойств, а не осмысленного сообщения.

Я использую несколько защищенных свойств для переноса пользовательских типов, недоступных в базе данных.Это удобный способ представления, например, перечислений в базе данных.Перечисление может быть представлено как защищенное строковое свойство с общедоступной оболочкой перечисления, которая преобразует значение в строку и из нее.Это очень хорошо работает во всех других сценариях использования EF, и я бы не стал отказываться от шаблона защищенных свойств.

Я использую сущности самообследования, которые хорошо сочетаются с WCF.Защищенные свойства работают хорошо, так как я проверил «Повторное использование типов в ссылочных сборках», что делает мои свойства-оболочки доступными во всех сборках.Я надеялся, что смогу сделать что-то подобное с сервисом данных.Я понимаю, что у меня могут возникнуть проблемы, если я хочу создать запрос, в котором защищенные свойства являются частью выражения, но это другая проблема, которую можно решить иначе.

Есть ли (практический) способиспользовать свойства защищенной сущности со службой данных?

Если нет, то как лучше всего представлять типы не-db, если я не хочу, чтобы мой набор открытых свойств был красивым и чистым?

Очевидно, я мог бы просто обнародовать все, но это была бы практика, которая рифмуется с глобалами.

1 Ответ

0 голосов
/ 01 сентября 2010

Как насчет вызова SetEntitySetAccessRule ?

...