Для нового проекта я начал использовать шаблон PetaPoco T4 с GenerateOperations
, GeneratePocos
и GenerateCommon
all = true.
Однако я хочу настроить сгенерированный объект poco. Если я изменю сгенерированный класс, он будет стираться каждый раз, когда я изменяю схему. Каков наилучший способ расширить созданные объекты Poco?
Как сказал Шотайм, я думаю, что решение может заключаться в использовании частичного класса, но мне трудно это сделать.
Вот моя структура кода.
в файле Database.cs (автоматически создается по шаблону T4)
namespace PetaPocoNISEntities
{
public partial class PetaPocoNISEntities : Database
{
[TableName("GivenQuestion")]
[PrimaryKey("Id")]
[ExplicitColumns]
public partial class GivenQuestion : PetaPocoNISEntities.Record<GivenQuestion>
{
[Column]
public int Id
{
....
}
}
}
}
поэтому я создал следующие частичные классы.
namespace PetaPocoNISEntities
{
public partial class PetaPocoNISEntities : Database
{
public partial class GivenQuestion : PetaPocoNISEntities.Record<GivenQuestion>
[ResultColumn]
public QuestionRepository QuestionRepository { get; set; }
[ResultColumn]
public List<GivenAnswer> GivenAnswers { get; set; }
}
}
Как видите, я использовал то же пространство имен.
но потом, когда я попытался использовать класс, следующий код жалуется, что gq (который является GivenQuestion) не содержит метод QuestinoRepository?
var givenAnswers = results.Where(gq => gq.QuestionRepository .QuestionCode.Trim().ToUpper() == _formData.Trim().ToUpper());
Есть идеи?