首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PetaPoco和Ignore属性

PetaPoco和Ignore属性
EN

Stack Overflow用户
提问于 2012-03-12 23:41:54
回答 3查看 4.8K关注 0票数 1

我有以下类:

代码语言:javascript
复制
public class Foo
{
    public int Id { get; set; }
    ...
    public Boo Boo1 { get; set; }
    public Boo Boo2 { get; set; }
}

我想排除Boo1Boo2属性,但我不想用PetaPoco.Ignore属性修饰这些属性。我想拥有纯POCO对象。我可以在代码中执行Ignore命令吗?还是必须创建查询/存储过程并手动映射所有字段?

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-13 00:05:55

看起来除了使用属性之外,不能以任何其他方式告诉PetaPoco字段/属性应该被忽略。您可以忽略少数成员,或者如果您没有映射大多数类,那么您可以为该类指定显式列映射,并修饰您确实希望映射的那些成员。我理解您在“纯粹的”POCO中添加特定于ORM的cruft的犹豫,但不幸的是,这些信息必须在某个地方,并且由于PetaPoco不使用映射文件(或者实际上根本不使用很多配置),所以类就是它的去处。

您唯一可以做的就是创建一个DTO/DAO,然后创建隐式或显式操作符,以便在域类和它的DTO之间进行转换。因此,DTO可以简单地不包含您不想包括的字段。这保持了两个类的POCO (取决于您对操作符方法的感受),而且它只添加了一个相对简单的步骤,即将查询结果强制转换为您的域类。

票数 2
EN

Stack Overflow用户

发布于 2012-03-13 20:17:42

在我的分支中:https://github.com/schotime/PetaPoco

您可以像我在这里描述的那样流利地描述您的模型:http://schotime.net/blog/index.php/2011/05/16/fluent-petapoco-external-mappings/,也可以使用如下所示的基于约定的映射:http://schotime.net/blog/index.php/2012/02/13/petapoco-convention-based-fluent-mapping/

票数 2
EN

Stack Overflow用户

发布于 2012-04-05 07:17:40

这是一个很好的匿名类型的地方。

在保存foo的方法中

代码语言:javascript
复制
public void InsertFoo(Foo f)
{
    var db = new Database("connection");           
    var petaPocoFooObj = new {f.Id}
    db.Insert("FooTable", "FooId", petaPocoFooObj);
}

这只是多一点的工作,尽管如果你的类是深度嵌套的,那么它可能是一个皮塔。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9670142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档