问题标签 [poco]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
194 浏览

asp.net-mvc - 使用 MS MVC 和 DDD,如何以及在何处定义涉及实体、值对象和一些额外字段的 MVC ActionMethod 参数类?

我正处于“啊哈!”的边缘。在编码领域驱动设计时。问题是如何以及在何处定义涉及实体、值对象和一些额外字段的 MVC ActionMethod 参数类? 实体和值对象类在我的存储库中定义。

我是否:

  1. 在实现其他类的存储库中创建一个自定义类(以在单个类中获取所有属性),并为额外字段添加更多属性?
  2. 在存储库中创建实体/值对象 poco 类,并在我的控制器类中创建一个引用这些对象的复合类,然后将其用作 ActionMethod 参数类型?
  3. 还有什么?

请求表单只是收集了一些客户类字段、一个邮寄地址和一些表单细节,比如他们是如何找到我们的。内容并不重要,只是它包含来自多个 pocos 的信息。

我知道 MVC 会将已发布表单的字段与 ActionMethod 参数中 Poco 的属性相匹配,如下所示:

因此 customer.firstName 会自动绑定到发布表单中的 firstName。

我有以下内容:

但想要有类似的东西:

有什么想法吗?

0 投票
2 回答
853 浏览

.net - 尝试使用 Entity Framework v4 保存对象 - 如何?

我使用Entity Framework v4的是(VS2010 Beta 2 附带的)+POCO的。我可以完美地将数据库中的数据加载到 poco 中。

现在,我有一个 poco 实例,我不知道如何使用 EF4 将其保存到数据库中。有人可以帮忙吗?我猜这是因为 EF4 不知道 POCO 已经“改变”了?无论如何,这是我正在尝试的代码,但它不起作用。(它会插入数据库,但不会使用 Identity 值更新 POCO。)

(基于良好的 ole Northwind 数据库...)

这段代码基于我对 Linq-To-Sql 所做的事情(效果很好!)一般逻辑流程是:-

  1. 获取现有对象。如果不存在,则创建一个新的。
  2. 设置此现有或新对象的所有属性。这会更新对象的状态。如果有任何更改,则该对象现在已被修改。否则它是新的。
  3. 保存对象。

那么,我可以用 EF4 重复这个概念吗?

干杯:)

0 投票
1 回答
420 浏览

.net - 对象到表格的亚音速自定义映射

我正在使用 Compact Framework 3.5,并暂时选择了 Subsonic 3.0 的自定义版本来进行数据访问。问题是我习惯于先开发模型,但也有兴趣控制我的数据库模式。因此,ActiveRecord 或 Repository 似乎都不能满足我的需求,我想使用我现有的 POCO 模型并将其映射到我现有的表。我习惯于通过 NHibernate 和实体框架来执行此操作。

经过一番调查,我似乎可以编写一个自定义 QueryMapping 来给我想要的自定义映射。然而,在我开始走这条路之前,我希望看到一些这样的例子。我似乎在网上找不到任何东西,想知道是否有人可以提供关于 Subsonic、模型优先和自定义 Table-per-Type 和 Table-per-Hierarchy 映射的经验。

0 投票
2 回答
3079 浏览

entity-framework - Entity Framework 4.0 POCO 和多对多问题

我创建了映射到实体域模型中的实体的 POCO 域对象。直到现在我必须处理多对多关系时,一切都运行良好。

假设我有三张桌子。
- 博客
- BlogTag
- 标签

您可以看到 Blogs 和 Tags 是多对多的,带有一个桥表,BlogTag 包含两个表的外键。

我也有相应的领域模型:
- 博客
- BlogsTags
- 标签

现在,我选择了一个博客列表,并尝试从博客访问特定标签。

myBlog.BlogsTags[0].Tag

填写了 BlogTags[0].TagForeignKey,但是 BlogTags[0].Tag 为!!

我也打开了 LazyLoading。

我可能做错了什么?

谢谢。

好的。这是一些源代码。

我的上下文类

我的 poco 类只有一个带有 virtual 关键字的相关对象列表。

0 投票
8 回答
14776 浏览

nhibernate - 究竟什么是“执着无知”?

持久性无知通常被定义为持久化和检索标准 .NET 对象(或 POCO,如果你真的坚持给它们命名)的能力。标准 .NET 对象的一个​​看似广为接受的定义是:

“...普通课程,您专注于手头的业务问题,而不会出于与基础设施相关的原因添加内容...”

然而,我看到人们将 NHibernate 描述为一个允许忽略持久性的框架,但它是一个不能在任何标准 .NET 对象上工作的框架,只能在符合特定设计要求的标准 .NET 对象上工作,例如(来源):

  • 所有类都必须有一个默认构造函数
  • 除非类未密封并且所有成员都是虚拟的,否则某些功能将不起作用
  • 除非您滥用 Equals/GetHashCode,否则对象标识无法正常工作

(旁白:在任何人不高兴之前,我并不是要在这里选择 NHibernate,它只是一个经常被引用的框架示例,据称它允许持久性无知。我确信类似的论点可以应用于其他声称相同的 ORM .)

现在,尽管该类本身没有任何持久性框架特定的属性或基类等,但对我来说,它并不是真正的“不了解持久性”,因为它必须遵循一组设计准则以方便所选持久性框架的使用。您必须考虑到持久性框架的要求来设计和实现该类;如果您对此一无所知,则该课程可能无法使用。

我对“持久性无知”/“POCO”的定义有疑问的地方是,我不明白从概念上讲,这与添加属性(例如[Serializable]or [DataContract]or[XmlType]或任何其他持久性框架特定的注释)有什么不同这有助于使用该框架的实体的持久性和检索。

那么,究竟什么是“执着无知”呢?

显然,将其定义为能够持久化“普通类”是一个谬误,因为 NHibernate 仅在不引用特定于框架的类方面是普通的,而它们是非凡的,因为它们需要不寻常的设计选择,例如默认构造函数和所有- 可变类型的虚拟成员和 Equals/GetHashCode 实现。

因此,当对象有助于使用持久性框架(在设计和结构中或通过使用特定于框架的注释)但本身不执行任何持久性逻辑时,是否可以合理地说“持久性无知”是正确的?

0 投票
2 回答
446 浏览

c++ - 将枚举与 Pococapsule 一起使用(C++ IoC 容器)

有没有一种方法可以在 pococapsule 中提供枚举值作为方法参数而不诉诸工厂方法?

假设我有一个在其构造函数中采用枚举值的类

使用 Pococapsule xml 配置:我想表达如下内容:

但是,由于 pococapsule 的基本类型仅包括内置类型,例如 short、char 等,这是不可能的。
我将如何使用 pococapsule 实例化 A 类?

我可以求助于使用这样的工厂方法:

这不是很实用。我必须为使用的每个枚举的每个可能值实现一个新的工厂方法。

有些人会争辩说 enum:s 不应该在构造函数或 setter 方法中传递,因为它是一个类做了很多事情的标志。是的我同意。但是,有很多第三方代码和 c++ 框架使用这种风格,所以我需要能够做到这一点。


编辑:该问题已在 Pococapsule 的讨论论坛上解决。在这种特定情况下,解决方法是让工厂方法执行所需的操作。它不像在 xml-config 文件中声明 enum-use 那样灵活,但它推动了项目向前发展。谢谢你的帮助。

0 投票
2 回答
388 浏览

c++ - 完整的 C++“从头开始”框架

哪些 C++ 框架以 Ruby on Rails 的方式提供了完整的框架?

我认为 Poco C++ 做到了,还有其他选择吗?

0 投票
2 回答
1239 浏览

c# - 实体框架 v4 -> 需要一些关于 POCO 和实体的帮助

我正在使用 EF4,并且我有两个实体希望映射到相同 POCO的. 我不确定我该怎么做。

实体 1 → Foo(这表示 db 中的表 FOO)
POCO → Foo

实体 2 → FooView(这表示 db 中的视图 FooView)
POCO → Foo

我知道我需要做类似的事情

但是当我尝试这个时,它会编译,但它会失败并出现以下异常:

System.ArgumentException:System.ArgumentException:指定的实体类型“MyProject.Core.Foo”与 EntitySet“FoosViews”中的“EntityFramework.SqlServerModel.FoosView”类型不匹配。

有什么建议么?

0 投票
3 回答
3694 浏览

entity-framework - EF4 POCO 一对多导航属性为空

我正在使用 VS2010、EF4 功能 CTP(最新版本)和 POCO 对象,例如下面的示例:

为简洁起见,假设context下面是 EF4 的上下文对象。我在实体类型和数据库之间有一个 dbml 映射,我像这样使用它没有问题:

此时,数据库有一个名为“Doug”的个人记录和一个帐户记录“foo”。我可以查询并找回那些记录就好了。但是,如果我尝试在保存 Person之前添加帐户,则 Accounts 列表为空(代理尚未在该属性上创建实例)。请参见下一个示例:

有没有其他人遇到过这个?更好的是,有没有人找到一个好的解决方案?

0 投票
1 回答
1197 浏览

entity-framework - EF4 POCO - 更新导航属性

我有一个 Recommendation 对象和一个 FeedbackLevel 对象,FeedbackLevel 对象是 Recommendation 对象内的导航属性

推荐 int EntityKey; 反馈级别;

使用 AddObject() 插入一个新的就可以了。这是我正在尝试更新的内容,但它不起作用。

上面的代码基本上是我所拥有的压缩版本。更新标量属性工作得很好,但我无法更新新的导航属性,因为 avove 代码在没有任何更改的情况下成功!

我还尝试了其他一些方法,例如先获取现有的 Recommendation,然后再将 FeedbackLevel 重新分配给它,但没有任何运气。

更新:

这是我在保存调用期间从 sql 分析器捕获的内容:

看起来它甚至不知道需要保存 FeedbackLevel。我怎样才能让它触发它?