Tag: poco

“POCO”的定义

有人可以定义“POCO”的含义吗? 我越来越频繁地遇到这个词,而且我想知道这是否仅仅是简单的类,还是意味着更多的东西呢?

自我跟踪实体与POCO实体

我们正在开始一个新的基于networking的产品,我们计划通过WCF服务来展示我们的业务逻辑。 我们将使用ASP.NET 4.0,C#,EF 4.0。 今后,我们希望基于这些服务来构buildiphone应用程序和WPF应用程序。 我一直在阅读很多关于使用POCO vs自我跟踪实体(STE)的信息,从我的理解来看,STE在Webscheme中效果不佳。 任何人都可以在这个问题上更多地了解?

POCO vs DTO

POCO = Plain Old CLR(或更好:Class)对象 DTO =数据传输对象 在这篇文章中有一个区别,但坦率地说,我读的大部分博客都是按照DTO的定义来描述POCO:DTO是用于在应用程序的各个层之间移动数据的简单数据容器。 POCO和DTO是一样的吗? (ps:看这篇关于POCO作为一种生活方式的文章 )

代码优先与模型/数据库优先

什么是使用entity framework4.1的代码优先模型/数据库先用EDMX图表的优点和缺点? 我试图完全理解使用EF 4.1构build数据访问层的所有方法。 我正在使用Repository模式和IoC 。 我知道我可以使用代码优先的方法:手工定义我的实体和上下文,并使用ModelBuilder来微调模式。 我也可以创build一个EDMX图,并select使用T4模板生成相同POCO类的代码生成步骤。 在这两种情况下,我最终都是ORM不可知的POCO对象和从DbContext派生的上下文。 数据库首先似乎是最吸引人的,因为我可以在企业pipe理器中devise数据库,快速同步模型并使用devise器对其进行微调。 那么这两种方法有什么区别呢? 这只是关于VS2010与企业pipe理器的偏好吗?

代码优先:独立协会与外键协会?

每当我开始一个新项目的工作,我正在devise我的POCO时,我都会与自己进行心理辩论。 我见过很多教程/代码示例似乎赞成外键协会 : 外键关联 public class Order { public int ID { get; set; } public int CustomerID { get; set; } // <– Customer ID … } 与独立协会相反: 独立协会 public class Order { public int ID { get; set; } public Customer Customer { get; set; } // <– Customer object … } 我曾经使用NHibernate,并使用独立的关联,不仅感到更多的面向对象,而且(与延迟加载)有优势,让我访问整个客户对象,而不是只是其ID。 […]

在保存EF4 POCO对象的更改时更新关系

entity framework4,POCO对象和ASP.Net MVC2。 我有一个多对多的关系,可以说BlogPost和Tag实体之间。 这意味着在我生成的POCO BlogPost类中,我有: public virtual ICollection<Tag> Tags { // getter and setter with the magic FixupCollection } private ICollection<Tag> _tags; 我从ObjectContext的一个实例请求一个BlogPost和相关的标签,并将其发送到另一个层(在MVC应用程序中查看)。 后来我找回更新的BlogPost,更改了属性并更改了关系。 例如它有标签“A”“B”和“C”,新的标签是“C”和“D”。 在我的例子中,没有新的标签,标签的属性从不改变,所以唯一应该保存的是改变的关系。 现在我需要保存在另一个ObjectContext中。 (更新:现在我试图做在相同的上下文实例,也失败了。) 问题是:我无法正确保存关系。 我尝试了我发现的一切: Controller.UpdateModel和Controller.TryUpdateModel不起作用。 从上下文获取旧的BlogPost,然后修改集合不起作用。 (用下一个不同的方法) 这可能会工作,但我希望这只是一个解决方法,而不是解决scheme:(。 尝试每个可能的组合中的BlogPost和/或标签的附加/添加/ ChangeObjectStatefunction。 失败。 这看起来像我所需要的,但它不工作(我试图解决它,但不能解决我的问题)。 尝试了ChangeState / Add / Attach / …上下文的关系对象。 失败。 “不工作”在大多数情况下意味着我在给定的“解决scheme”上工作,直到它不产生错误并至less保存BlogPost的属性。 这些关系会发生什么变化:通常标签再次被添加到标签表中,新的PK和保存的BlogPost引用这些,而不是原来的。 当然,返回的标签有PK,在保存/更新方法之前,我检查PK,它们与数据库中的相同,所以EF可能认为它们是新对象,而那些PK是临时的。 我知道的一个问题,可能使它无法find一个自动化的简单解决scheme:当一个POCO对象的集合被改变,这应该发生在上面提到的虚拟集合属性,因为然后FixupCollection技巧将更新另一端的反向引用多对多的关系。 然而,当一个View“返回”一个更新的BlogPost对象时,并没有发生。 这意味着也许对我的问题没有简单的解决scheme,但这会让我非常难过,而且我会讨厌EF4-POCO-MVC的胜利:(也就是说EF不能在MVC环境中做到这一点,使用EF4对象types:(我认为基于快照的更改跟踪应该发现更改后的BlogPost与具有现有PK的标记具有关系。 顺便说一句:我认为同样的问题发生在一对多的关系(谷歌和我的同事这样说)。 我会尝试在家里,但即使这样做不能帮助我在我的应用程序中的六个多对多的关系:(。