草庐IT

c# - 验证检查在存储库模式中的什么位置?

假设我有一个名为User的实体,它有很多帖子。对于删除帖子,我的服务如下所示:voidDeletePost(intpostId,intuserId);我的验证码去哪儿了?(确保用户有删除权限)。我应该在存储库中使用1个数据库调用来执行此操作吗?或者我应该在我进行2次调用的服务层中执行此检查:通过userId获取用户。在对用户完成验证后调用delete。我将有2个存储库,1个用于用户,1个用于帖子,每个都如下所示://FromthePostRepository.voidDelete(intpostId);//MayhavetoaddauserIdparamifIdovalidationi

c# - 为什么数据存储库不是静态的?

我正在查看ASP.NETMVC应用程序的repository方法,并注意到未使用static类。既然repo是CRUD,为什么不让它成为static? 最佳答案 1)很难用静态类进行单元测试(如果你正在测试一个依赖于你的存储库的类,你希望该测试针对一个假的“模拟”存储库对象而不是你的真实对象)2)您通常希望每个请求有1个存储库实例,以便更轻松地确保来自一个用户的未提交更改不会对另一个用户造成困惑。 关于c#-为什么数据存储库不是静态的?,我们在StackOverflow上找到一个类似的问

c# - 在存储库模式中加载子记录

使用LINQTOSQL作为基于存储库的解决方案的基础。我的实现如下:IRepositoryFindAllFindByIDInsertUpdateDelete然后我有用于查询结果的扩展方法:WhereSomethingEqualsTrue()...我的问题如下:我的用户存储库有N个角色。我是否创建角色存储库来管理角色?我担心如果我走这条路,我最终会创建几十个存储库(每个表几乎1个,除了Join表)。每个表的存储库是否常见? 最佳答案 如果你正在构建你的存储库以特定于一个实体(表),这样每个实体都有你上面列出的IRepository接口

c# - 我应该将通用存储库与 Entity Framework 5 一起使用吗?

我目前正在使用具有通用存储库和工作单元模式的EntityFramework。我的模型类似于thisarticle中描述的模型我过去使用过GenericRepositories,非常喜欢它提供的全局功能。但是,在将它与EntityFramework一起使用时,我似乎每天都会遇到更多问题。在处理父/子/联结关系时,这些问题似乎会出现更多。将通用存储库与EF结合使用开始给我留下不好的印象,我开始认为将通用存储库与EF结合使用是错误的方法。有人可以帮我指引正确的方向吗? 最佳答案 本文的方法确实会成为一种痛苦,因为您已经在EF中拥有一个通用

c# - 为什么 ASP.NET Identity 的 `UserStore` 中有这么多存储库?

我即将进行身份转换Microsoft.AspNet.Identity.EntityFramework项目(v2.0.0.0)到使用NHibernate作为其持久性机器的项目。我的第一个“绊脚石”是UserStore中的这组存储库。类:privatereadonlyIDbSet_logins;privatereadonlyEntityStore_roleStore;privatereadonlyIDbSet_userClaims;privatereadonlyIDbSet_userRoles;privateEntityStore_userStore;类型参数TUser被限制为Identi

c# - 提示用户在 ASP.NET C# 中保存/打开文件

找出如何做到这一点应该不难。基本上我试图获取一个字符串并让客户在单击按钮时保存它。它应该弹出一个保存/打开对话框。没有多余的花里胡哨之类的东西。这不是火箭科学,(或者我认为如此)。似乎有很多不同的方法(StreamWriter、HttpResponse等),但我找不到的示例都无法正常工作或解释发生了什么。提前致谢。我发现的许多代码块中的一个示例...(这只是一个例子,请不要以此为基础回答。)StringFileName="FileName.txt";StringFilePath="C:/....";//ReplacethisSystem.Web.HttpResponseresponse

c# - 在内存中写入文本文件并使用 savefiledialog 保存

我正在尝试在内存中创建一个文本文件,向其中添加一些行,最后将文件保存在一个文本文件中。我可以处理savedialog部分,但我不知道如何从内存中获取文本文件。我们将不胜感激任何帮助和提示。目前我正在做的是://InitializeinmemorytextwriterMemoryStreamms=newMemoryStream();TextWritertw=newStreamWriter(ms);tw.WriteLine("HELLOWORLD!");tw.WriteLine("IWANTTOSAVETHISFILEASA.TXTFILE!);请注意我将调用tw.WriteLine()在

c# - SharpSvn:获取存储库结构和单个文件

我正在尝试将一个简单的存储库浏览器构建到Web应用程序中,并且一直在研究使用SharpSvn来提供帮助。我可以找到所有常用的物理命令,如更新、提交,它们实际上会对存储库或工作副本进行更改,但我正在努力寻找查询存储库结构或内容的方法。有什么方法可以让我读取存储库的结构,以便可以在网页中显示一个简单的资源管理器式界面(即目录TreeView和文件列表)? 最佳答案 SharpSvn.SvnClient类有一个GetList()非常有效的功能:using(SvnClientsvnClient=newSvnClient()){Collect

c# - Net Core : Execute All Dependency Injection in Xunit Test for AppService, 存储库等

我正在尝试在AppService的Xunit测试中实现依赖注入(inject)。理想的目标是运行原始应用程序Startup/configuration,并使用Startup中的任何依赖注入(inject),而不是在我的测试中再次重新初始化所有DI,这就是整个目标。更新:Mohsen的回答很接近。需要更新几个语法/需求错误才能工作。由于某种原因,原始应用程序可以运行并且可以调用部门应用程序服务。但是,它不能调用Xunit。最后使用原始应用程序的启动和配置让Testserver工作。现在收到以下错误:Message:Thefollowingconstructorparametersdidn

c# - 如何使用通过依赖注入(inject)使用泛型的存储库接口(interface)?

我正在尝试使用以下通用存储库接口(interface)进行DI和构造函数注入(inject):publicinterfaceIRepository:IDisposablewhereTEntity:class问题是为了定义接口(interface)的实例,我必须像这样提供类类型:privateIRepository_personRepository;这个问题是如果我使用DI(并且我使用Unity作为IoC框架),那么我必须在我的构造函数中定义多个实例来获取我需要使用的所有存储库接口(interface),如下所示:publicMyClass(IRepositorypersonReposi