Добавление [ResultColumn] в Database.tt в PetaPoco - PullRequest
0 голосов
/ 14 июня 2019

Я заядлый пользователь PetaPoco. Есть ли способ настроить Database.tt (для генерации POCO), чтобы указать ResultColumn в конкретной таблице?

ТИА

В настоящее время Database.tt заявляет:

// Tweak Schema
    tables["tablename"].Ignore = true;                          // To ignore a table
    tables["tablename"].ClassName = "newname";                  // To change the class name of a table
    tables["tablename"]["columnname"].Ignore = true;            // To ignore a column
    tables["tablename"]["columnname"].PropertyName="newname";   // To change the property name of a column
    tables["tablename"]["columnname"].PropertyType="bool";      // To change the property type of a column

Я не знаю, как изменить шаблон, кроме этих инструкций (которые работают очень хорошо). Я надеялся на подобное утверждение, которое могло бы привести к POCO вроде:

[TableName("phoenix.view_medical_records")]
    [ExplicitColumns]
    public partial class view_medical_records
    {
        [Column] public string lastname { get; set; }
        [Column] public string firstname { get; set; }
        [Column] public string birthdate { get; set; }
        [Column] public int? chart_number { get; set; }
        [ResultColumn] public DateTime tservice { get; set; }
        [Column] public string status { get; set; }
        [ResultColumn] public DateTime tcompleted { get; set; }
        [Column] public string procedure_description { get; set; }
        [Column] public string description { get; set; }
        [Column] public string provider { get; set; }
    }

Примечание: атрибут [ResultColumn] предоставляется автоматически?!

Спасибо.

1 Ответ

1 голос
/ 14 июня 2019

В соответствии с моим комментарием к вопросу, PetaPoco не поддерживает столбцы результатов через файлы генератора T4.Тем не менее, обходной путь может быть игнорировать столбцы

tables["phoenix.view_medical_records"]["tservice"].Ignore = true;
tables["phoenix.view_medical_records"]["tcompleted"].Ignore = true;

И предоставить частичные классы для сгенерированного класса, которые предоставляют столбцы.

public partial Poco1 
{
    // Generated by PP
}

public partial Poco1
{
    // Supplied by the developer (Must be in same namespace)

    [ResultColumn] public DateTime tservice { get; set; }

    [ResultColumn] public DateTime tcompleted { get; set; }
}
...