Я начал портировать старый код ADO.NET на Linq для сущностей.Одна особенно полезная функция - ObjectContext.Translate
и ее компаньон ObjectContext.ExecuteStoreQuery
, которые позволяют использовать произвольный SQL и развертывать их в простые старые объекты данных.
Однако,в отображении столбцов легко допустить ошибки: неправильно введенное имя столбца или другой регистр приводят к тому, что свойство .NET больше не соответствует предполагаемому столбцу SQL.Это особенно сложно определить, когда меняется схема БД.Когда свойство .NET не соответствует столбцу sql, исключение не выдается - вместо этого Linq для сущностей просто устанавливает для свойства значение по умолчанию (null
, 0
и т. Д.),Это поведение иногда может быть полезным, позволяя типам содержать дополнительные свойства, но оно также очень хорошо скрывает ошибки, особенно когда null
или значение по умолчанию является допустимым значением для этого столбца.
Есть ли способизменить это поведение или хотя бы определить, когда оно происходит, чтобы такие ошибки были сразу очевидны?
Другими словами: можно ли принудительно установить, что форма объекта .NET должна точно соответствовать форме запроса SQL?