问题标签 [sharp-architecture]

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 投票
1 回答
350 浏览

.net - 从前端服务器到后端服务器的夏普架构和 WCF NHibernate 会话

我们即将开始一个大型项目,我想使用 Sharp Architecture(计划已经使用 NHibernate 和 MVC)。

最初,我们将向外部提供商提供 WCF 服务,然后计划构建一个 MVC 站点,该站点将与这些后端 WCF 服务通信。

这里的体系结构表明我们需要前端 WCF 服务器(在 DMZ 中)服务器与后端 WCF 服务器(然后到 DB 服务器)通信——该网站也将位于 DMZ 中自己的服务器上。

我可以使用 Sharp Architecture 在前端服务器上公开 WCF 服务,该服务将启动 NHibernate 会话并将数据传递到后端服务器吗?

然后稍后 MVC 站点可以与后端 WCF 服务通信(使用 WcfOperationSessionContext????)

寻找一种跨 WCF 和网站处理会话的方法。

这可能吗?或者我应该将 DTO 传递到后端服务器并在那里使用 NHibernate?

非常感谢

0 投票
1 回答
1808 浏览

c# - 如何在多线程控制台应用程序中使用 Sharp Architecture 设置 NHibernate?

我对这些技术还是很陌生。这里真正的问题是如何在控制台应用程序中管理每个线程的会话。目前,如果我将它作为单个线程运行,那么一切都很好。一旦我切换到多线程模型,我就会开始看到会话级别的争用(因为 Session 对象在设计上不是安全的) KeyNotFound 异常(以及其他)开始被抛出。

在 Web 应用程序中,您会执行以下操作:

它本质上在 global.asax 中每个线程(网络请求)执行一次初始化。

关于如何在控制台应用程序中设置此(会话管理)的任何想法?

0 投票
1 回答
121 浏览

asp.net-mvc - 如何在 Sharp 架构中使用数据注释

我们最近升级到 MVC2 和 SharpArchitecture 1.6。我们的模型都在我们的 Project.Core 项目中,而资源在我们的 Project.Web 项目中。我们不能引用 Core 中的资源文件,因为这会产生循环依赖。

我们想在模型上使用数据注释 - 有没有办法访问资源文件以便我们可以获得本地化消息?

0 投票
1 回答
979 浏览

nhibernate - 使用 NHibernate StatelessSession 时更新实体并忽略子代理

我正在尝试使用 StatelessSession 批量更新实体。

因为它是无状态的,NHibernate 不会在保存时自动级联子实体。

这很好,因为我不想对任何子实体进行任何更改。

不幸的是,保存后,NHibernate 抱怨:

“对象引用了未保存的瞬态实例 - 在刷新之前保存瞬态实例。类型:MyAssembly.MyRandomEntity,实体:Castle.Proxies.MyRandomEntityProxy”

当然,如果我尝试更新子实体,我会收到错误消息:

“没有持久性:Castle.Proxies.MyRandomEntityProxy”

如您所见,子实体是一个代理,因为它尚未加载。我不需要它,我不想更新它……但即使我这样做了,我也不确定我该怎么做。

知道如何解决这个问题,基本上告诉它忽略瞬态子实体吗?

更新

这是父对象上子实体的映射:

这是子实体上的 Id 列:

0 投票
2 回答
666 浏览

nhibernate - 使用 Sharp Architecture 和 Fluent NHibernate 忽略基类

使用夏普架构 1.9

我有一个继承自 Sharp Arch Entity 类的基类

然后是两个继承的类:

在我的数据库中,我有两个表。BasketItems 和 OrderItems。

我的问题:Fluent NHibernate (AutoMapping) 正在尝试映射 LineItem。

我的问题:我如何告诉 NHibernate 忽略 LineItem 映射,因为我仍然想将 EntityWithTypedId 属性映射到 BasketItems 和 OrderItems 表?

0 投票
1 回答
69 浏览

automapper - Fluent Automapper 与标签创建有关的问题

发布编辑 - 请参阅下面的编辑

我对用作 SHARP 架构的一部分的 Fluent Automapping 有疑问。运行其中一个测试用例将生成一个模式,我可以使用它在我的数据库中创建表。

我正在开发一个带有帖子的网站,以及与这些帖子相关的标签。我希望一个标签能够与多个帖子相关联,并且每个帖子都有 0 个或多个标签。

我想实现以下数据库模式:

发布{Id、标题、提交时间、内容}

标签 {Id, Name}

PostTag {PostId,TagId}

相反,我得到:

发布{Id、标题、提交时间、内容}

标签 {Id, Name, PostID (FK)}

我正在使用清晰的架构,并且类可能如下所示(或多或少):

我可以看到为什么它没有设置它所拥有的 DB 模式,因为有时一个对象只能作为另一个对象的一部分存在。但是一个标签可以单独存在。

我将如何实现这一目标?我对 MVC、Nhibernate 和 SHARP 架构等很陌生,所以任何帮助都将不胜感激!

编辑*

好的,我现在稍微调整了我的课程。我的问题是我期望推断中间表。相反,我意识到我必须创造它。所以我现在有了(为了便于阅读,我稍微简化了这些类。:

这为我提供了中间实体的架构以及通常的 Post 和 Tag 表:

上面的问题是它仍然不包含 Tag 的外键。另外,它真的应该有一个 ID 列,因为它是一个关系表吗?我认为它实际上应该是一个复合键,由 Post 和 Tag 表中的 PK 组成。

我确信通过添加到 Tag 类

我将在 PostTag 架构中添加另一个 FK,但我不想添加上述内容,因为 postList 可能很大。每次我将帖子带入系统时,我都不需要它。我会有一个单独的查询来计算这类信息。

谁能帮我解决最后一部分?谢谢你的时间。

0 投票
1 回答
385 浏览

nhibernate - Nhibernate.ISession SaveOrUpdate 中到底发生了什么

我正在为我的项目使用 MVC、NHibernate 和 Sharp 架构。
每当我使用保存对象(实体)时SaveOrUpdate,也会有更新的子实体。但它不是更新子实体,而是DELETE-INSERT为所有子实体运行。

任何帮助。

0 投票
1 回答
1087 浏览

nhibernate - 自定义 Fluent NHibernate 地图不适用于 AutoMapping

我遇到了 Fluent NHibernate AutoPersistenceModelGenerator 的问题。它不想拾取自定义地图。

使用 Sharp Architecture 2.0、Fluent NHibernate 1.2 和 NHibernate 3.1。

我目前的相关配置如下:

我尝试对配置进行各种修改,并在 Fluent NHibernate 上翻阅互联网文章,但无济于事。我有一个使用 Sharp Arch 1.x 的工作版本,以及早期版本的 NHibernate 和 Fluent。我假设我缺少的语法发生了变化。任何和所有的帮助将不胜感激。

谢谢!约翰

0 投票
2 回答
798 浏览

c# - Sharp Architecture Tasks 层出错:找不到命令类型的命令处理程序

我目前正在使用 Sharp Architecture 2.0 并且一直做得很好。但是我遇到了在任务层中执行命令的问题。我有以下与我的命令相关的类:

实现CommandBaseSaveOptionStep1Command和实现ICommandHandler< SaveOptionStep1Command >SaveOptionStep1CommandHandler 和实现CommandResult的SaveOptionStep1CommandResult

创建命令时,我收到以下错误并且无法确定问题来自何处。

错误
未找到命令类型的命令处理程序: EasyOptions.Tasks.Commands.SaveOptionStep1Command

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息: SharpArch.Domain.Commands.CommandHandlerNotFoundException:找不到命令类型的命令处理程序:EasyOptions.Tasks.Commands.SaveOptionStep1Command

这是我的代码的 Github 要点: https ://gist.github.com/1314136

0 投票
1 回答
288 浏览

.net - 在 NHibernate 拦截器中访问当前请求上下文

我正在玩 SharpArchitecture,我正在尝试在基础设施层为 NHibernate 创建一个简单的 AuditInterceptor。

现在,我的问题是从拦截器中访问当前请求的详细信息。这包括当前用户和服务器收到活动请求的日期/时间。

我应该使用某种 UnitOfWork 模式吗?如果是这样,使 UnitOfWork 对象可用于拦截器代码的好方法是什么?