草庐IT

逻辑卷管理

全部标签

c# - 如果存储库用于聚合根,那么其他实体的数据访问逻辑应该放在哪里?

我有几个代表网络应用程序的对象。目前我有一个集群对象来表示应用程序的特定部署。在集群对象中,我有以下对象:服务器、客户、用户。这些对象都不能不属于集群而存在,因此我创建了一个ClusterRepository来从数据库中检索集群。现在,我需要从集群中获取客户列表,大概是通过使用集群对象中的方法,如GetCustomers()。现在,我最初的想法是将此操作的工作卸载到CustomerRepository,但由于存储库仅用于聚合根,数据访问逻辑应该放在哪里?这属于服务类别吗? 最佳答案 从本质上讲,聚合根是您可能需要作为对象图的根获取的

c# - 我应该将验证逻辑放在 POCO 中吗?

假设我有一个像这样的POCO:publicclassName{publicstringFirstName{get;set;}publicstringLastName{get;set;}}名字和姓氏不能为空。我应该添加这样的方法吗:publicListValidate(){varerrors=newList();if(String.IsNullOrEmpty(FirstName))errors.Add(newError("FirstName","Youmustfilloutfirstname."));if(String.IsNullOrEmpty(LastName))errors.Add

c# - 如何使用Task Parallel Library(TPL)实现重试逻辑

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Retryataskmultipletimesbasedonuserinputincaseofanexceptionintask我正在寻找一种在TPL中实现重试逻辑的方法。我想要一个通用的函数/类,它能够返回一个任务,该任务将执行给定的操作,并且在出现异常的情况下将重试该任务,直到给定的重试次数为止。我尝试使用ContinueWith并在出现异常时让回调创建一个新任务,但它似乎只适用于固定数量的重试。有什么建议吗?privatestaticvoidMain(){TasktaskWithRetry=Create

c# - 对象等于 - 不覆盖等于的纯对象或引用类型的基本逻辑是什么?

看完我就到了this我没有找到相关答案-所以请在阅读整个问题之前不要将其标记为重复。我一直在使用反射器并查看Object.Equals。我看到的是:[__DynamicallyInvokable,TargetedPatchingOptOut("PerformancecriticaltoinlineacrossNGenimageboundaries")]publicvirtualboolEquals(objectobj){returnRuntimeHelpers.Equals(this,obj);}RuntimeHelpers.Equals看起来像这样://System.Runtime.

c# - 单元测试和验证逻辑

我目前正在为包含验证例程的业务逻辑类编写一些单元测试。例如:publicUserCreateUser(stringusername,stringpassword,UserDetailsdetails){ValidateUserDetails(details);ValidateUsername(username);ValidatePassword(password);//createandreturnuser}我的测试夹具是否应该包含对Validate*方法中可能发生的每个可能的验证错误的测试,还是最好将其留给一组单独的测试?或者验证逻辑应该以某种方式重构?我的理由是,如果我决定测试Cr

c# - 如何向现有的依赖属性回调添加逻辑?

我正在尝试将PropertyChangedCallback添加到UIElement.RenderTransformOriginProperty。当我尝试覆盖PropertyMetadata时抛出异常。我已经搜索了MSDN和Google,我所能想到的是this.DependencyPropertyDescriptor.AddValueChanged在那篇文章的某个时候被建议,但这不会解决我的问题,因为这不是每个实例的回调。我完全不明白这个异常是什么意思。有谁知道我做错了什么?publicclassfoo:FrameworkElement{privatestaticvoidOrigin_C

c# - 为什么需要业务逻辑层?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我正在开发使用网络服务的ASP.net应用程序。没有直接来self的应用程序的数据库连接——所有事件都使用Web服务处理。在UI层,我可以使用几行Linq代码进行数据自定义和验证。如果我的应用程序没有业务层,会有什么缺点?

c# - 任何人都知道找出一个数字是否为完美平方的逻辑?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Fastestwaytodetermineifaninteger'ssquarerootisaninteger有人知道找出一个数是否为完美平方的逻辑吗?(牛顿法或综合除法除外)ForEg:-4,16,36,64arePerfectSquares.我将输入441,逻辑应该判断它是否是完美正方形。这是亚马逊面试中的一个问题。我想在没有任何内置函数的情况下做到这一点

c# - 编写对集合中的第一项具有特殊逻辑的循环的巧妙方法

我经常不得不编写一个循环,其中第一项需要特殊情况,代码似乎从来没有像理想情况下那样清晰。如果不重新设计C#语言,编写这些循环的最佳方法是什么?//thisismorecodetoreadthenIwouldlikeforsuchacommonconcept//anditistoeasytoforgettoupdate"firstItem"foreach(xinyyy){if(firstItem){firstItem=false;//othercodewhenfirstitem}//normalprocessingcode}//thiscodeisevenhardertoundersta

c# - 如何将 if、else if 逻辑转换为三元运算符?

我只是想知道这是否可行,因为我开始使用三元运算符来减少代码行数并且我很喜欢它。if(x==y){z+=x;}elseif(x==z){z+=y;}else{z+=1;}如果只有一个这样的if语句,我现在可以这样做:z=x==y?z+=x:z+=1; 最佳答案 应该是这样的:z=x==y?z+x:x==z?z+y:z+1;如果您使用z+=x作为操作数,它最终会执行z=(z+=x)。虽然它在这种特殊情况下有效,但由于表达式z+=x的结果是z的最终值,它在其他情况下可能无效。但是,由于所有操作都有共同的z+=,您可以这样做:z+=x==y