我正在链接到CDN上的jQuery Mobile样式表,如果CDN失败,我想回到我本地版本的样式表.对于脚本,解决方案是众所周知的:
<!-- Load jQuery and jQuery mobile with fall back to local server -->
<script src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='jquery-1.6.3.min.js'%3E"));
}
</script>
Run Code Online (Sandbox Code Playgroud)
我想为样式表做类似的事情:
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b3/jquery.mobile-1.0b3.min.css" />
Run Code Online (Sandbox Code Playgroud)
我不确定是否可以实现类似的方法,因为我不确定浏览器在链接脚本时是否以与加载脚本时相同的方式阻塞(也许可以在脚本标记中加载样式表然后把它注入页面)?
所以我的问题是:如果CDN失败,如何确保本地加载样式表?
安装VS2012和MVC 4后,我有一个MVC3应用程序现在失败,出现以下运行时错误:
找不到方法:'System.Collections.Generic.Dictionary`2 System.Web.Razor.Parser.CSharpCodeParser.get_RazorKeywords()'.
如果我在VS2010中创建一个新的ASP.NET MVC 3项目,它可以使用razors视图.有没有其他人遇到过类似的问题?
我想在MongoDb中进行有效查询,以查找在用户组中列出其用户ID的所有用户.理想情况下,我想将此作为对Mongodb的单个请求.我想要的对应于SQL中的嵌套选择.我在mongo shell中试过这个:
db.user.save({_id:"u1", Name:"u1 name"});
db.user.save({_id:"u2", Name:"u1 name"});
db.user.save({_id:"u3", Name:"u3 name"});
db.usergroup.save({_id:"g1", Users: ["u2","u3"]});
Run Code Online (Sandbox Code Playgroud)
现在这里是我想做的选择,但没有硬编码["u2","u3"]数组:
db.user.find({_id:{$in:["u2","u3"]}}).forEach(printjson);
Run Code Online (Sandbox Code Playgroud)
这很好,并返回u2和u3的用户对象.
现在的问题是如何使用查询提取$ in运算符中的userid数组,以便可以使用单个请求创建整个查询.
像这样的"嵌套查询"不起作用:
db.user.find({_id:{$in:db.usergroup.find({_id:"g1"},{_id:0,Users:1})}}).forEach(printjson);
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:Tue Mar 27 06:17:41未捕获异常:错误:{"$ err":"无效查询","代码":12580}无法加载:mongoNestedSelect.js
1)这可能在mongodb中如何?
2)如何使用官方c#驱动程序执行此操作?
当我尝试反序列化这个无效的json字符串(最后}]遗漏):
[{"ExtId":"2","Name":"VIP sj?lland","Mobiles":["4533333333","4544444444"]
Run Code Online (Sandbox Code Playgroud)
通过做这个:
var result = JsonSerializer.DeserializeFromString<T>(str);
Run Code Online (Sandbox Code Playgroud)
ServiceStack json反序列化器接受该字符串,但它创建了一个错误的对象,因为我最终得到了一个具有以下值的C#对象:
ExtId : "2" // ok fine.
Name: "VIP sj?lland" // ok fine
Mobiles: ["4533333333","4544444444", "544444444"]// Aarg! An array with 3 objects ?!?
// There were only two in the JSON string.
Run Code Online (Sandbox Code Playgroud)
在这种情况下,抛出异常而不是继续使用坏数据会好得多.因此我尝试使用:
JsConfig.ThrowOnDeserializationError = true;
Run Code Online (Sandbox Code Playgroud)
就在调用DeserializeFromString之前,但没有抛出任何异常.在1月份,我问这个问题配置ServiceStack.Text以抛出无效的JSON,答案是ServiceStack支持resrence并且我可以在GitHub中发出pull请求.
这仍然是这样吗?有没有人已经做过,省了我的麻烦?否则,我的时间表非常紧张,所以如果有人有一些代码或建议如何创建一个选项标志以使ServiceStack抛出反序列化错误,请回复此处,以便我可以更快地完成此操作.
我将 MongoDB 与 C# 官方 MongoDb 驱动程序一起使用。
我的域对象都有一个字符串类型的 Id 属性
string Id { get; set;}
Run Code Online (Sandbox Code Playgroud)
但我想在实际数据库中存储 12 字节的二进制 ObjectId,这是在类映射中实现的,如下所示:
BsonClassMap.RegisterClassMap<X>(cm => {
cm.AutoMap();
cm.GetMemberMap(c => c.Id).SetRepresentation(BsonType.ObjectId);
});
Run Code Online (Sandbox Code Playgroud)
其他集合的外部 ObjectId 键也表示为字符串,并且也应保存为对象 ID。
现在,如果可以避免的话,我不想为每个 Id 和外键编写相同的 SetRepresenttion 内容。
那么有没有一种方法可以一劳永逸地说,所有字符串 Id 字段都应该在数据库中表示为 ObjectId,并且所有名称以“Id”结尾的字符串属性也应该在数据库中表示为 ObjectId?
我试图在我的单元测试中使用Sqlite作为内存数据库和ServiceStack ORMlite.
如果我用SQLite保存到文件运行我的测试,即.使用connectionstring
"Data Source=|DataDirectory|unittest.db;Version=3;"
Run Code Online (Sandbox Code Playgroud)
,它工作正常,ServiceStacks生成auth表
userRepository.CreateMissingTables();
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用此连接字符串将SQLite用作内存数据库时
":memory:"
Run Code Online (Sandbox Code Playgroud)
说的时候我有例外
SQLite error
no such table: UserAuth
Run Code Online (Sandbox Code Playgroud)
我第一次尝试通过这样做来获取用户
userRepository.GetUserAuthByUserName(...)
Run Code Online (Sandbox Code Playgroud)
这是在我调用了userRepository.CreateMissingTables()之后,如果我切换到使用带有文件数据库的SQLite,它就能正常工作.有谁知道问题可能是什么?(由于Ormlite 3.9.4中对ORM lite版本1.0.65.0的错误引用,我不得不降级到ORMLite版本3.9.0)
EF5在一周前发布,应该会有相当多的性能提升.我目前正在使用ServiceStack OrmLite,但我正在考虑转换到EF5,因为它还允许CodeFirst +它具有迁移功能.
然而,我发现的基准看起来并不是很好
http://www.servicestack.net/benchmarks/取自http://code.google.com/p/dapper-dot-net
但据我所知,他们没有更新以测试最新版本的EF5.有没有人知道EF5与OrmLite和Dapper的一些新的更新基准?
我也在考虑留在OrmLite,然后使用Fluentmigrator http://www.github.com/schambers/fluentmigrator进行迁移,而不是启用迁移的新EF5.
切换到EF5的原因,在Visual Studio和MVCScaffolding中有很多内置支持,"它更标准",因此更容易招募+外包代码的人.
但是我再次非常喜欢整个ServiceStack堆栈,包括OrmLite,我觉得它非常精心制作,虽然我自己没有做过任何系统的性能测试.
因此,我要求提供有关从ServiceStack Ormlite + Fluentmigrations切换到EF5 +以及将EF5与OrmLite进行比较的任何更新基准的建议和论据.
entity-framework fluent-migrator servicestack dapper ormlite-servicestack