草庐IT

c# - 在流畅的 nHibernate 中使用通用存储库模式

我目前正在开发一个中型应用程序,它将访问不同站点上的2个或更多SQL数据库......我正在考虑使用类似这样的东西:http://mikehadlow.blogspot.com/2008/03/using-irepository-pattern-with-linq-to.html但是,我想使用流畅的nHibernate代替Linq-to-SQL(当然还有nHibernate.Linq)这可行吗?我将如何配置它?我的映射定义会去哪里等等...?此应用程序最终将具有许多方面-从WebUI、WCF库和Windows应用程序/服务。此外,例如在“产品”表上,我会创建一个“ProductMana

c# - 异步/等待和缓存

我的服务层正在将大量Db请求缓存到memcached,这是否导致无法使用Async/Await??例如,我怎么能等待这个?publicvirtualStoreGetStoreByUsername(stringusername){return_cacheManager.Get(string.Format("Cache_Key_{0}",username),()=>{return_storeRepository.GetSingle(x=>x.UserName==username);});}注意:如果缓存中存在键,它将返回一个“Store”(不是Task),如果缓存中不存在键,它将执行lam

c# - 一个大存储库与许多小存储库?

我的数据库中有几个产品表:产品类型产品类别产品类别项目产品库存按照我现在的看法,我可以制作IProduct,它具有以下方法:查找所有类型()FindAllCategories(inttypeId)FindAllItems(intcategoryId)或者,我可以将它们分开以模仿表结构:IProductType、IProductCategory等。是否有一个比另一个更好的理由? 最佳答案 存储库的理念是将每个存储库的责任委派给单个实体。在这种情况下,建议为每个实体创建一个存储库。您也可以选择大型存储库,但这不是最佳解决方案。最后,您将

c# - .NET 值类型在内存中的布局

我有以下.NET值类型:[StructLayout(LayoutKind.Sequential)]publicstructDate{publicUInt16V;}[StructLayout(LayoutKind.Sequential)]publicstructStringPair{publicStringA;publicStringB;publicStringC;publicDateD;publicdoubleV;}我的代码将指向值类型的指针传递给非托管代码,以及通过调用System.Runtime.InteropServices.Marshal.OffsetOf发现的偏移量。非托管代

c# - 图像源和缓存

我使用以下代码显示来自网络服务器的图像:图像会自动下载,我假设还有一些基于Url的缓存。我的问题是,当应用程序处于离线状态时,可能缓存的图像不会显示。有没有办法改变缓存行为,以便在没有可用网络时也加载图像?指向有关缓存的文档的指针也会非常有帮助。 最佳答案 BitmapImage默认自动缓存远程图像。它最好与CreateOptions="BackgroundCreation"结合使用以获得最佳性能。ThisMSDNblogpost,旧但仍然相关,列出并解释了所有CreationOptions并且在大多数模式下缓存是自动的。我使用这些

c# - 具有领域驱动设计的存储库模式会成为反模式吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。社区在4个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion首先,我想澄清一下,我是领域驱动设计的新手,我问这个问题是因为我读过一些叫做贫血领域模型的东西。大多数时候我在使用Repository模式时会看到以下内容。我们有一个通用存储库我们的模型只包含一组公共(public)属性,但不包含任何方法(因此根据DDD的定义,它变成了贫血领域模型),因为这里的存储库类处理该实体或模型

c# - 使用存储库时,ASP.NET MVC 中业务逻辑的最佳位置是什么?

在ASP.NETMVC项目中为数据库实现Repository时,将业务逻辑放入其中是否正确,或者将逻辑放入Controller类可能更好?或者使用额外的服务和帮助类来操作数据? 最佳答案 最终,除了它自己的层(作为“模型”层的一部分)之外,您的业务逻辑没有一个完美的地方。通常您可以采用不同的实现方式,但在每种情况下都需要权衡取舍。为业务逻辑创建另一个层的权衡是您必须实际封装您的代码。如果您过于激进,您的实体和域模型之间可能还会出现一些重复(如果您的数据库的关系语义已经处理了您的业务逻辑)。查看View是应用中最脆弱的部分,因为它是最

c# - Azure 函数和缓存

我们计划开发一个Azure函数,其输入触发器是一条服务总线消息,输出将是blob存储。服务总线消息将包含一个图像url,该函数会将图像调整为预定义的分辨率,并将上传到azureblob存储。图像大小应调整到的分辨率存储在数据库中,Azure函数需要调用数据库以了解输入消息中图像应该使用的分辨率。分辨率实际上是根据输入消息的来源配置的主数据。进行数据库调用将是一次昂贵的调用,因为每次调用都必须转到数据库。有什么方法可以缓存数据并在不调用数据库的情况下使用它。比如内存缓存? 最佳答案 您可以自由使用您将在其他.NET应用程序中使用的常用

c# - MVC 4 Autofac 和通用存储库模式

我在我的MVC4应用程序中使用工作单元和通用存储库模式。我试图解决的问题是为我系统中的每个实体创建存储库stub。为了利用AutofacIoc,我必须为每个实体创建一个存储库类和接口(interface),以便我可以在Autofac中注册它。应用启动...builder.RegisterType().As().InstancePerHttpRequest();存储库类publicclassSchoolDetailRepository:RepositoryBase,ISchoolDetailRepository{publicSchoolDetailRepository(IDatabase

c# - 存储库模式是否遵循 SOLID 原则?

我正在对SOLIDprincipal进行一些研究,发现了Repository模式实现中的一些问题。我将逐一解释,如有错误请指正。问题1存储库模式打破了单一职责原则(S)假设我们有一个定义为的接口(interface)publicinterfaceIRepositorywhereT:IEntity{IEnumerableList{get;}voidAdd(Tentity);voidDelete(Tentity);voidUpdate(Tentity);TFindById(intId);}显然它违反了单一责任原则,因为当我们实现这个接口(interface)时,在一个类中我们同时放置了Co