c# - 什么是 POCO Entity Framework

标签 c# .net entity-framework poco

使用 POCO 有什么好处?不明白执着无明是什么意思,这是什么意思? poco 对象不能公开 Save 之类的东西?我无法理解这个到处都是嗡嗡声的 POCO。

EF生成的实体和POCO有什么区别?

最佳答案

POCO 代表“普通旧 C# 对象”或“普通旧 CLR 对象”,具体取决于您询问的对象。如果框架或 API 声明它在 POCO 上运行,则意味着它允许您定义对象模型 idiomatically而不必让您的对象继承自特定的基类。一般而言,适用于 POCO 的框架允许您更自由地控制类的设计和实现,因为它们对正常工作的要求更少。

持久性无知意味着,在业务逻辑层或更高层运行的代码中的任何内容都尽可能不了解数据库的实际设计、正在运行的数据库引擎,或者如何或何时检索对象来自或保存到数据库。在 MEF 的情况下,通过处理 POCO 并使用 LINQ 执行查询(即不需要用户创建任何 SQL 查询来检索所需的对象)来实现持久性无知。

这是一个悬而未决的问题,但人们普遍认为,在大多数情况下,域对象(或业务对象 - 无论哪种方式,上面提到的 POCO)应该忽略持久性逻辑。意思是,您有一个 IO 管理器或适配器类,而不是调用 MyBusinessObject.Save(),然后调用 Manager.Save(MyBusinessObject)。通过这种方式,您可以避免在业务对象上公开持久性语义 - 您可以通过这种方式更好地分离关注点。

关于c# - 什么是 POCO Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672409/

相关文章:

c# - async Task<object> 函数死锁

c# - 类型不可知类在泛型类中调用泛型和非泛型方法?

c# - 如何解析简单捕获的闭包表达式并获取目标对象和选择器

c# - 正在解析的 MVC 4 详细信息页面 2 个 id

C# - 更新 ef .edmx 文件后维护界面

c# - 在 MVC 编辑操作 {HTTP POST} 中使用 UpdateModel 与 Request.Form 集合

c# - 我想制作我自己的 c# 调试器——该怎么做呢?我应该使用什么工具?

.net - 如何将此 StackPanel 用作资源

c# - 在 Windows 上使用 Mono Runtime 而不是 Microsoft 的 Monodevelop

entity-framework - 避免贫血域模型如何与 ORM、依赖注入(inject)和可靠方法一起使用