我必须承认,我总是忘记Nant命名模式的语法内部(例如文件集中使用的那些).在我看来,双星号/单星号的东西似乎是非常容易忘记的.
有人可以提供命名模式的权威指南吗?
所以一切都与基本的鉴别器映射很好地协调.我可以毫无问题地直接与实体A和B进行交互.
public class BaseType {}
public class EntityA : BaseType {}
public class EntityB : BaseType {}
Run Code Online (Sandbox Code Playgroud)
这在BaseType映射中没有戏剧性地映射为
DiscriminateSubClassesOnColumn<string>("Type")
.SubClass<BaseType>("A", m => { })
.SubClass<BaseType>("B", m => { });
Run Code Online (Sandbox Code Playgroud)
在以下情况下会出现问题:在聚合中,我们要将集合映射到每个子类
使用如下的映射
public class AggregateMap: BaseMap<Aggregate>
{
public AggregateMap()
{
HasMany<EntityA>(x => x.ACollection).AsSet().Cascade.All();
HasMany<EntityB>(x => x.BCollection).AsSet().Cascade.All();
}
}
Run Code Online (Sandbox Code Playgroud)
这些显然不是完整的映射,但是最低限度的描述我正在尝试的东西.添加到ACollection和BCollection的项目在保存Aggregate时通过级联正确保留.然而,当检索到聚合时,对类型歧视存在混淆.
我已经经历了许多不同的可能解决方案,我不再知道什么不起作用.我觉得我不应该在集合上提供where子句,但事情对我来说不起作用.
任何线索将不胜感激.
我正在使用JQuery表单插件(http://malsup.com/jquery/form/)来处理表单的ajax提交.我也插入了JQuery.Validate(http://docs.jquery.com/Plugins/Validation)进行客户端验证.
我所看到的是,当我预期验证时,验证失败,但它不会阻止表单提交.当我使用传统形式(即非ajax)时,验证失败阻止了提交表单....这是我想要的行为.
我知道验证是正确连接的,因为在ajax提交发生后仍然会出现验证消息.
那么我错过了什么是阻止了我想要的行为?以下示例代码....
<form id="searchForm" method="post" action="/User/GetDetails">
<input id="username" name="username" type="text" value="user.name" />
<input id="submit" name="submit" type="submit" value="Search" />
</form>
<div id="detailsView">
</div>
<script type="text/javascript">
var options = {
target: '#detailsView'
};
$('#searchForm').ajaxForm(options);
$('#searchForm').validate({
rules: {
username: {required:true}},
messages: {
username: {required:"Username is a required field."}}
});
</script>
Run Code Online (Sandbox Code Playgroud) 我想编写两个Linq表达式的结果.它们以形式存在
Expression<Func<T, bool>>
Run Code Online (Sandbox Code Playgroud)
所以我要编写的两个本质上是一个参数(类型为T)的委托,它们都返回一个布尔值.我想要的结果是对布尔值的逻辑评价.我可能会将它作为扩展方法实现,所以我的语法将是这样的:
Expression<Func<User, bool>> expression1 = t => t.Name == "steve";
Expression<Func<User, bool>> expression2 = t => t.Age == 28;
Expression<Func<User, bool>> composedExpression = expression1.And(expression2);
Run Code Online (Sandbox Code Playgroud)
后来在我的代码中我想评估组合表达式
var user = new User();
bool evaluated = composedExpression.Compile().Invoke(user);
Run Code Online (Sandbox Code Playgroud)
我用了一些不同的想法,但我担心它比我希望的更复杂.这是怎么做到的?
在我的Nant脚本中,我想将属性值与已知字符串进行比较.在阅读了Nant Expressions文档之后,我相信我能够进行基本的'=='比较来评估为布尔值.
但是给出了脚本块:
<if test="${target.env} == Dev">
<echo message="***** You are using DEV"/>
</if>
Run Code Online (Sandbox Code Playgroud)
执行时我收到以下错误:
'Dev == Dev' is not a valid value for attribute 'test' of <if ... />.
Cannot resolve 'Dev == Dev' to boolean value.
String was not recognized as a valid Boolean.
Run Code Online (Sandbox Code Playgroud)
这似乎应该很简单(也可能是).如何比较Nant中的两个字符串或属性来评估为布尔值?
我的NHibernate配置设置为显示所有交互的sql.因此,我的一些较大的集成测试表现不佳(特别是在生成测试报告时).
有没有办法在运行时关闭ShowSql - 然后以编程方式重新启动它.
我想要一个基于计时器触发器的预编译Azure功能.
我需要安装什么nuget包,或者我需要引用什么dll才能访问TimerInfo类?我找不到任何地方.
我目前正在使用 Linq to NHibernate (尽管这不是这个问题的问题)对我的数据库执行查询,我希望能够测试当前结果IQueryable实例是否已执行。
调试器知道 myIQueryable尚未被“调用”,因为它告诉我扩展 Results 属性将“枚举”它。有没有一种方法可以让我以编程方式识别这一点。
我希望这是有道理的 :)
我在单元测试中做了一些性能工作,并想知道是否可以访问我的RavenDb会话的统计信息(类似于NHibernate会话统计信息)?
我想知道诸如总查询计数和到服务器的次数之类的事情.
我有一个动态打开和关闭的JQuery对话框.一切都工作正常,除了关闭后重新打开对话框的位置.
尺寸保持不变,但位置不是.
我已经尝试连接到'Open'事件但是在我手动重新定位元素之后,JQuery UI似乎正在重置该位置.
是否可以保持对话框的大小?我当然认为它应该是.
我想获得被委派为Func的方法的名称.
Func<MyObject, object> func = x => x.DoSomeMethod();
string name = ExtractMethodName(func); // should equal "DoSomeMethod"
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
- 吹牛的权利 -
Make ExtractMethodName也可以使用属性调用,让它返回该实例中的属性名称.
例如.
Func<MyObject, object> func = x => x.Property;
string name = ExtractMethodName(func); // should equal "Property"
Run Code Online (Sandbox Code Playgroud) c# ×5
javascript ×2
jquery ×2
linq ×2
nant ×2
ajax ×1
ant ×1
azure ×1
css ×1
delegates ×1
dialog ×1
jquery-ui ×1
lambda ×1
methodinfo ×1
nhibernate ×1
ravendb ×1
validation ×1