StringTemplate не может отобразить атрибут LINQ для класса SQL
Я использую инструмент GUI vs2008 для генерации некоторого класса LINQ to SQL, моя проблема в том, что StringTemplate не может достичь атрибутов этой модели
$persons:{
<li>$it.name$</li>
}$
он напечатал:
<li></li>
<li></li>
<li></li>
Имя является публичной собственностью модели Person. Если я сам создаю класс person с такими же атрибутами, StringTemplate может его получить.
2 ответа
Конструктор создает обычный класс по отношению к компилятору, код просто генерируется автоматически. Я подозреваю, что у вас есть другая проблема - возможно, вы не включили правильные ссылки / пространства имен или у вас конфликт пространства имен, и он выбирает неправильный класс.
Это не правильное решение, но у меня такая же проблема, и я использую $it._name$
работает для меня. Это доступ к частному полю поддержки, хотя, так что это не очень хорошая идея. Тем не менее, это означает, что StringTemplate может найти это поле, но не name
свойство идти с ним. Странный.
Редактировать:
Понял. StringTemplate предполагает, что свойства начинаются с заглавной буквы. так что если ваша собственность была названа Name
это будет работать. Вы можете переименовать свои свойства или исправить обидный фрагмент кода в источнике StringTemplate по адресуASTExpr.cs:RawGetObjectProperty
вокруг вызова GetPropertyValueByName
(оно использует methodSuffix
не propertyName
).