对于一个新项目,我开始使用 PetaPoco T4 模板,其中GenerateOperations
、GeneratePocos
和GenerateCommon
all = true。
但是,我想自定义生成的 poco 对象。如果我修改生成的类,每次修改模式时都会将其清除。扩展生成的 poco 对象的最佳方法是什么?
正如 Schotime 所说,我认为解决方案可能是使用部分类,但我很难让它发挥作用。这是我的代码结构。
在 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());
有任何想法吗?