我使用Fluent NHIbernate中的AutoPersistenceModel来映射我的所有实体,并且一切正常:D
但是,我的几个对象都有
public virtual IList<Comment> Comments { get; set; }
Run Code Online (Sandbox Code Playgroud)
在数据库中有一个注释表,每个具有上述代码的实体都有自己的注释链接表.
目前我正在做的是:
public class ContractMappingOverride : IAutoMappingOverride<Contract>
{
public void Override(AutoMap<Contract> mapping)
{
mapping.HasManyToMany(x => x.Comments)
.WithTableName("Comment_Contract");
Run Code Online (Sandbox Code Playgroud)
对于每个实体.
有没有办法我可以设置一个约定,其中IList <Comment>的所有映射都自动连接到上面的表名约定多少?
谢谢
安德鲁
在ORM和现代数据访问领域落后,我正在寻求从DataSets(不寒而栗)转向适当的映射框架.
我只是想把Linq转到SQL,我现在正在研究NHibernate,以便在我们的下一个项目中使用它.
使用旧的sql和数据集,您的SQL查询显然只返回您想要的数据.我也理解L2S也足够聪明地评估它的where子句,以便它只返回你请求的对象.NHibernate是一样的吗?Ayende的Linq和NHibernate一样吗?
我的意思是,如果我做相当于:
Select * from customers where name = "fred"
Run Code Online (Sandbox Code Playgroud)
它会将每个客户都带入内存,然后过滤掉非freds,还是只是聪明到只能获得它所需要的东西?
如果它是智能的,有什么警告?是否有某些类型的查询无法以这种方式进行评估?我需要注意哪些性能问题?
谢谢
安德鲁
我得到了CQRS的一般概念,但是当涉及到超越示例代码和幻灯片以处理现实世界问题时,我有一些问题.
验证
当您需要验证涉及检查数据库中的值的命令时,您会怎么做?注册服务,我必须输入一个唯一的电子邮件地址.我听到的一个论点是用户输入重复的电子邮件地址的可能性非常小,所以只需在处理命令时处理它并向他们发送一封"抱歉"的电子邮件,或者建议他们重置密码.因此,该过程避免了为了验证而具有读取模型.但是,如何在命令处理程序中处理重复的情况?你怎么知道那是重复的?检查一个readmodel?你可能首先使用它以获得更好的可用性.
功能/修复错误的更改
当您需要更改命令的工作方式或修复错误时会发生什么?在仅附加的哲学中,我如何处理所有旧命令和命令处理程序?我不能重命名他们_legacy并隐藏他们离开,否则我的事件反序列化将无法正常工作.有什么优雅的解决方案可以解决这个问题?
谢谢
我有一个引用的库,在那里,如果引用它的程序集处于DEBUG/RELEASE模式,我想执行不同的操作.
是否可以打开调用程序集处于DEBUG/RELEASE模式的条件?
有没有办法做到这一点,而不诉诸于:
bool debug = false;
#if DEBUG
debug = true;
#endif
referencedlib.someclass.debug = debug;
Run Code Online (Sandbox Code Playgroud)
引用程序集始终是应用程序的起点(即Web应用程序.
在我学习NHibernate的过程中,我已经达到了下一个障碍; 我该如何将它与StructureMap集成?
虽然代码示例非常受欢迎,但我对一般过程更感兴趣.
我打算做的是......
但是,不要我需要调用我的会话实例各种整洁行动方法的HttpRequest的结束(因为这就是它的生命结束)?
如果我在Dispose()中进行整理,那么structuremap会为我解决这个问题吗?
如果没有,我该怎么办?
谢谢
安德鲁
我有一个相当深的对象图(5-6个节点),当我遍历它的部分时,NHProf告诉我我有一个"选择N + 1"问题(我这样做).
我所知道的两个解决方案是
我真的不想做这些中的任何一个(虽然我可能会稍后将图表分开,因为我预测它会增长)
目前....
是否有可能告诉NHibernate(使用FluentNHibernate)每当我尝试访问子进程时,一次性加载它们,而不是select-n + 1-ing,因为我迭代它们?
我也得到了"无限结果集",这可能是同样的问题(或者更确切地说,如果可能的话,将由上述解决方案解决).
每个子集合(整个图表)将只有大约20个成员,但20 ^ 5很多,所以当我得到root时我不想急于加载所有内容,而只是每当我获取所有子集合时靠近它.
编辑:事后的想法....如果我想在渲染孩子时引入分页怎么办?我是否必须在这里打破我的对象图,或者我可以用一些偷偷摸摸来解决所有这些问题?
我想在新线程/异步中从ASP.NET MVC控制器操作运行一些代码.我不关心响应,我想触发并忘记并在异步方法在后台运行时返回用户视图.我认为这BackgroundWorker堂课适合这个?
public ActionResult MyAction()
{
var backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += Foo;
backgroundWorker.RunWorkerAsync();
return View("Thankyou");
}
void Foo(object sender, DoWorkEventArgs e)
{
Thread.Sleep(10000);
}
Run Code Online (Sandbox Code Playgroud)
为什么此代码会在返回View之前导致10秒的延迟?为什么View不会立即返回?
更重要的是,我需要做些什么来完成这项工作?
谢谢
是否有适合.NET的OSS URI操作类?
请不要建议BCL Uri课程,或所有其他方式的手动黑客,我可以做几乎无用的事情.
我正在寻找一个强大的库来处理所有不同形式的uris(相对的,绝对的,有/没有查询字符串等),让我以优雅的方式访问和操作所有片段.
谢谢
我需要一个HttpOnly身份验证cookie来处理:
mydomain.com
www.mydomain.com
abc.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这样我就可以通过一次登录登录所有三个地方.
这可以正常工作,方法是将我的cookie域设置为:
.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这是设置cookie的响应头:
MYAUTHCOOKIE=FOO; domain=.mydomain.com; path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)
这一切都适用于普通的浏览器请求.
但是,我需要从做一个AJAX请求mydomain.com,并www.mydomain.com给abc.mydomain.com.
当我发出请求时,它没有传递身份验证cookie.为什么这样,我该怎么办呢?
如果我向JS所在页面的同一主机发出请求,它会发送cookie:s
这是我的请求代码:
$.ajax({
type: "POST"
, data: { data: { foo: bar} }
, dataType: "json"
, url: "http://abc.mydomain.com/foo"
, timeout: 5000
, success: function (data, textStatus) {
alert('woo!');
}
, error: function (xhr, textStatus, error) {
alert('meh');
}
});
Run Code Online (Sandbox Code Playgroud)
这是一些跨域政策吗?为什么cookie域不能使这个工作?
谢谢
我想从ruby rake脚本运行一个可执行文件 foo.exe
我希望将输出STDOUT和STDERR输出foo.exe直接写入控制台我正在运行rake任务.
当进程完成时,我想将退出代码捕获到变量中.我该如何实现这一目标?
我一直在玩backticks,process.spawn,system但我不能得到我想要的行为,只有部分
更新:我在Windows上,在标准命令提示符下,而不是cygwin
c# ×4
nhibernate ×3
ajax ×1
asp.net-mvc ×1
cookies ×1
cqrs ×1
cross-domain ×1
jquery ×1
performance ×1
ruby ×1
select ×1
structuremap ×1