Для нового проекта я начал использовать шаблон 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());
Любые идеи?