StringTemplate не может отобразить атрибут LINQ для класса SQL - PullRequest
1 голос
/ 21 января 2010

Я использую инструмент GUI vs2008 для создания некоторого класса LINQ to SQL, моя проблема в том, что StringTemplate не может получить атрибуты этой модели

$persons:{
<li>$it.name$</li>
}$

напечатано:

<li></li>
<li></li>
<li></li>

имя является публичной собственностью Person модели. Если я сам создаю класс person с такими же атрибутами, StringTemplate может его получить.

Ответы [ 2 ]

1 голос
/ 21 января 2010

Конструктор создает нормальный класс по отношению к компилятору, код просто генерируется автоматически. Я подозреваю, что у вас есть другая проблема - возможно, вы не указали правильные ссылки / пространства имен или у вас конфликт пространства имен, и он выбирает неправильный класс.

0 голосов
/ 11 августа 2010

Это не правильное решение, но у меня та же проблема, и использование $it._name$ работает для меня. Это доступ к частному полю поддержки, хотя, так что это не очень хорошая идея. Тем не менее, это означает, что StringTemplate может найти это поле, но не свойство name для его использования. Странно.

Edit:

Понял. StringTemplate предполагает, что свойства начинаются с заглавной буквы. так что если бы ваша собственность называлась Name, она бы работала. Вы можете переименовать свои свойства или исправить обидный фрагмент кода в источнике StringTemplate по адресу ASTExpr.cs:RawGetObjectProperty вокруг вызова на GetPropertyValueByName (используется methodSuffix, а не propertyName).

...