问题标签 [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.
fluent-nhibernate - EntityWithTypedId 的尖锐架构问题
我希望使用 Guid 梳子作为我的身份。我已将 EntityWithTypedId 接口添加到我的类中,这导致我的表不持久。即使用 nh prof 我可以看到未调用 SaveOrUpdate 方法。如果我只使用实体接口,我可以在分析器中看到它。
控制器
c# - 在 Nhibernate 中为命名参数赋值的问题
我对 Nhibernate 比较陌生。我正在尝试更新存储过程。我在命名查询中得到了以下部分。
Testupdate 是一个存储过程,其中包含一个简单的更新语句。我正在使用以下代码行更新参数。
但是,当我查看 的值时query.QueryString
,它仍然指向相同的值 ( exec UpdateTest :DateField :StringField :IntField :BoolField :NullIntField
)。似乎没有分配命名参数。我应该怎么做才能解决这个问题?
我正在使用 SharpArchitecutre,它使用流利的 nhibernate 来查询数据。
请注意,我已经在论坛中搜索了这个特定问题,但我无法找到示例。
我确信这个问题可能是微不足道的,但到目前为止我找不到解决方案。
任何帮助表示赞赏。
nhibernate - 如何在 NHibernate 更新之前对 dB 执行验证
下面的场景是,我会说很常见,虽然我知道解决它的一种方法,但它缺乏优雅。
我给出的示例基于https://github.com/sharparchitecture/Sharp-Architecture-Cookbook。
我正在编写的应用程序是一个 ASP.NET MVC 应用程序,并且必须支持多个用户在同一个对象上工作。
以下场景是一个边缘案例,但仍然是一个有效的案例。
假设您有两个用户在处理同一个对象,并且 dB 行是否可以更新取决于特定字段的值。为了使其更具体,假设您有一个产品,并且为了简单起见,该产品具有“名称”和“数量库存”字段。
假设最初有 10 件产品,用户 1 和用户 2 想购买该产品。当两个用户都看到初始表格时,他们被告知有 10 件此类物品有库存。现在用户 1 购买了所有 10 件商品,而用户 2 去喝咖啡。所以User1的交易没有问题。
然后,用户 2 喝完咖啡回来,相信还有 10 件商品有库存。因此他尝试购买 1,但必须阻止他这样做,因为没有库存商品。
所以这个问题可以通过使用 ASP.NET DataAnnotations 验证来解决,这将捕获大多数情况。然而,在我们的边缘案例中,假设 User1 和 User2 在几分之一秒内执行相同的操作,这样当 User2 提交表单时,它通过了 ASP.NET 验证,但当它到达持久层时,数量库存为 0。
对此的解决方案是尽可能在最迟时刻执行验证,即在调用 Update 方法之前。
现在来看一些代码。
现在,我打电话的事实是:
意味着如果我这样做:
会导致异常:
具有相同标识符值的不同对象已与会话关联:1
因此,我必须将 productModel 中的所有值复制到 currentProductModel。使用 Automapper 之类的东西很好,但我仍然觉得有点不对劲,因为我觉得我应该能够按原样保存 productModel 而不必将数据从一个对象传输到另一个对象。
此外,必须进行两次相同的验证,一次使用 DataAnnotation,另一次在更新之前违反 DRY 原则。
关键是我觉得我错过了一个技巧,但不知道从哪里开始以及调查什么。
这对我来说是一个简单的问题,但想出一个很好的优雅解决方案是另一回事。所以问题是你过去是如何处理这个简单的案例的?这是我想太多了吗?
nhibernate - 夏普架构 + NHibernate Envers
目前我们使用的是 Sharp Architecture 1.9.6。我们需要审核我们的域类。使用 NHibernate Envers 完成这项任务似乎很舒服。但我无法配置 Sharp Architecture 来使用这个库。有一些错误,但我几乎解决了所有这些错误,除了一个。
错误如下:
例如,我在 DB 中有名为“Document”的 POCO 类和表“Documents”。我还创建了表“Documents_AUD”并将属性 [Audited] 添加到类“Document”。因此,如果 Document 类的某些对象发生了变化,Envers 必须将数据添加到“Documents_AUD”表中。为此,Envers 创建(动态?)另一个类的 ovbject - “Document_AUD”。此处出现错误:“NHibernate.MappingException No Persister for Document_AUD”。
而且我不知道在哪里为 Document_AUD 添加映射。
有人使用 Envers 和 Sharp Arch 吗?有人可以分享 Envers + Sharp Arch 配置吗?
非常感谢你!
nhibernate - 流利的 Nhibernate 未知路径
我在 VS2010 上有一个架构清晰的项目,并且在“/”应用程序中出现服务器错误。
超时已过。在操作完成之前超时时间已过或服务器没有响应。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。
奇怪的是堆栈跟踪它引用了我的服务器中没有的路径“e:\WorkSpaces\Git\SharpArchitecture...” 谁能告诉我这是什么,它有解决方案吗?
asp.net-mvc-3 - Sharp Architecture 简单的 CRUD 应用程序
我正在尝试通过构建此处提到的测试应用程序来开始使用 Sharp 架构,我已按照教程中给出的步骤进行操作,但遇到了描述数据库模式生成的路障。根据教程运行测试
将在 Database 文件夹中生成模式,我在Templify的生成应用程序中找不到此测试。请知道解决方案的任何人指导我如何运行此测试以生成数据库模式...
asp.net-mvc - Sharp Architecture 2.0 中的脚手架支持
他们是否在 SA 2.0 中放弃了对脚手架的支持。我已经下载了templify-project。我安装了 templify 并创建了一个解决方案,但它创建的项目结构不包括tools
并且tools/CrudScaffolding
应该包含代码生成模板。
所以问题是:他们是否放弃了 SA 2.0 的代码生成功能,另外,如果有人能指出我使用 SA 2.0 的演示,我将不胜感激
asp.net-mvc-3 - 如何使用 Fluent Hibernate 从 T4 模板生成 LINQ2SQL 类
我之前问过一个类似的问题, 但没有得到回答,我试图了解如何使用 T4 模板生成 LINQ2SQL 类。我正在使用(或尝试使用)清晰的架构。只是找不到起点。
我做了什么:我浏览了许多教程博客,这些博客描述了使用 T4 模板生成代码,但找不到如何从数据库中生成实体类或 linq2sql 类的方法,就像它在实体框架中所做的那样。我是否必须手写映射,然后将使用数据库生成类,或者如果我的问题看起来含糊不清或措辞不当怎么办,对不起,但这就是我目前拥有的 T4 和 Fluent Hibernate 的全部内容。
我将不胜感激任何指导/帮助...
castle-windsor - Quartz.net 设置抛出错误:“配置解析器遇到"
我有一个实现 Sharp 架构的 Asp.net C# MVC 3 应用程序。几天来,我一直试图让 Quartz.net 设置并与 Castle Windsor 很好地合作,但没有任何运气。据我所知,我已经正确设置了所有内容,但仍然存在问题。
在我的Global.cs文件中,创建我的容器并尝试注册石英作业:
在我的quartz_jobs.xml文件中,我有以下内容:
nhibernate - 使用 nhibernate 会话创建 sql 查询获取的结果的枚举错误
我正在使用尖拱 1.0 版。
在 NHibernate PostUpdateEvent 我试图访问数据库。
当我尝试保存任何实体并在 postupdateevent 中运行此选择查询时,它会在 OnFlush 上给出枚举错误。NHibernate\Listeners\FlushFixEventListener .cs 行:35
我读到使用 foreach 循环运行枚举操作,所以更好地运行 for 循环。但我尝试了 for 循环。仍然没有区别。
保存操作使用 SharArch NHibernate Transaction 属性进行处理。如果我删除 Transaction 属性,则 postupdatelistener 中的查询可以正常工作。
这是堆栈跟踪。
[InvalidOperationException:集合已修改;枚举操作可能无法执行。] System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource 资源) +56 System.Collections.Generic.Enumerator.MoveNextRare() +58 System.Collections.Generic.Enumerator.MoveNext() +93 NHibernate.Engine.ActionQueue。 d:\horn.horn\orm\nhibernate\Working-2.1\src\NHibernate\Engine\ActionQueue.cs:112 NHibernate.Engine.ActionQueue.ExecuteActions() 中的 ExecuteActions(IList 列表):\horn.horn\orm \nhibernate\Working-2.1\src\NHibernate\Engine\ActionQueue.cs:147 NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource 会话)在 d:\horn.horn\orm\nhibernate\Working-2.1\src\NHibernate \Event\Default\AbstractFlushingEventListener.cs:241 NHibernate.Event.Default.DefaultFlushEventListener。1.Save(T entity) in D:\Solutions\Infrastructure\NHibernate\LinqRepository.cs:95
Tasks.Shared.ContentEntityTasks
4.Save(TSaveEntityRequestDetails details) 在 D:\Solutions\Tasks\Shared\ContentEntityTasks.cs:96 Web.Controllers.Entity.EntityController.Edit(EntityViewModel entityViewModel, HttpPostedFileBase fileName, HttpPostedFileBase mainImageFileName, HttpPostedFileBase thumbnailFileName) 在 D:\Solutions\ Web.Controllers\Entity\EntityController.cs:379 lambda_method(ExecutionScope, ControllerBase, Object[]) +185 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +236
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 参数) +31 System.Web.Mvc.<> c_ DisplayClassa.b _7() +85 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func1 continuation) +235491
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func
1 续)+235491 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext preContext,Func 1 continuation) +235491
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func
1 续)+235491 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList 1 filters, ActionDescriptor actionDescriptor, IDictionary
2 参数)+288 System.Web。 Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +235670 System.Web.Mvc.Controller.ExecuteCore() +174 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +209 System.Web.CallHandlerExecutionStep.System。 Web.HttpApplication.IExecutionStep.Execute() +599 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171