我有一个 Windows 服务,它使用计时器定期调用类库(在工作线程上)。该类库具有所有必需的应用程序功能,而 Windows 服务只不过是一个简单的托管环境。作为其执行的一部分,库需要调用数据库并获取一堆记录。这些记录不会经常更改(想想几周),我想将它们缓存在内存中。我应该在类库还是Windows服务中实现缓存结构?
本质上我有点不确定的是,一旦 Windows 服务加载,然后定期调用此类库,该库运行的应用程序域对于该库的所有执行是否保持不变(通过每隔几个时间运行一个工作线程)分钟)。因为如果不是,那么在库内实现缓存的目的似乎毫无意义。
有人可以帮助我理解这一点吗?
有人能告诉我以下几点之间的区别
public class CarCollection<T>:List<T> where T:Car{}
Run Code Online (Sandbox Code Playgroud)
和
public class CarCollection:List<Car>{}
Run Code Online (Sandbox Code Playgroud)
对我来说,他们似乎做同样的事情,创建类型安全的"汽车"对象集合.
我有一个每10秒运行一次的Windows服务...每次运行时,它会获取一些测试数据,修改它并使用EntityFramework将其持久保存到数据库中.但是,在每次运行时,当我尝试持久化更改时,我会得到以下乐观并发异常: -
存储更新,插入或删除语句会影响意外的行数(0).自实体加载后,实体可能已被修改或删除.刷新ObjectStateManager条目
我知道一个事实是没有其他任何东西写入该数据库但我的服务每10秒更新一次记录.什么可能导致并发异常?
我认为对象图中的某个相关实体在第二次保存操作之前被修改了.我所做的只是实例化一个新的对象上下文,并在我使用相同的上下文检索的一些记录上调用保存操作.以下代码工作---
var ctx = new blahEntities();
var profile = ctx.ProfileSet.Where(pr=>pr.FirstName.Contains("a")).FirstOrDefault();
profile.Address = "modified";
ctx.SaveChanges();
ctx.Refresh(RefreshMode.StoreWins,profile);
Run Code Online (Sandbox Code Playgroud) 我的事实表有一个"Date"列,我用作Time Dimension表的外键,我在数据源中使用SSAS为我创建.但是,当我部署多维数据集并浏览它时,添加时间维度属性或其任何层次结构都不会过滤度量上的任何内容.就像我的事实表中的时间信息和为我创建的时间维度表SSAS之间的断开一样.
我在这里错过了什么吗?如何链接它们,以便我可以使用生成的时间维度根据事实表中的日期值在我的多维数据集上应用切片和骰子分析?
我有一个WCF服务合同,定义如下:
[OperationContract]
[WebGet(
UriTemplate =
"HubContent/{language}?apptype={appType}"
,
ResponseFormat = WebMessageFormat.Json)]
HubResults GetHubContent(string language, string appType);
Run Code Online (Sandbox Code Playgroud)
在服务中实现此契约时,我返回一个在JSON中解析出来的对象列表.但是,只要对象的某个属性是URL或包含正斜杠的任何字符串,服务器在浏览器中返回的JSON就会转义正斜杠.所以这个网址: - http://www.example.com/test/site将会是这样的
http\/\/www.example.com\/test\/site.
Run Code Online (Sandbox Code Playgroud)
是否有一些我需要在与格式相关的合同中指定以纠正此问题?
我在Ubuntu上使用Mono构建了一个简单的应用程序,它按顺序打印出列表的条目.代码在Ubuntu上执行大约需要6毫秒,但是相同的代码在Windows上执行大约需要40毫秒.有没有理由为什么相同的应用程序代码在Ubuntu上运行得比在Windows上使用实际的.net运行时更快?
我试图确定给定的路径是指向文件还是目录.目前我的逻辑很简单,涉及以下检查
if (sourcePath.Contains(".")) // then treat this path as a file
Run Code Online (Sandbox Code Playgroud)
上面的问题是文件夹名称也可以包含句点.我希望能够确定给定的路径是文件的路径,而不必尝试实例化文件流类型并尝试访问它或类似的东西.
有没有办法做到这一点?
提前致谢
c# ×3
.net ×1
caching ×1
concurrency ×1
entity ×1
file ×1
file-io ×1
filepath ×1
formatting ×1
generics ×1
json ×1
mono ×1
olap ×1
olap-cube ×1
performance ×1
sql-server ×1
ssas ×1
wcf ×1