小编And*_*ock的帖子

流畅的NHibernate类型的多种约定

我使用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>的所有映射都自动连接到上面的表名约定多少?

谢谢

安德鲁

fluent-nhibernate

7
推荐指数
1
解决办法
2106
查看次数

NHibernate效率

在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,还是只是聪明到只能获得它所需要的东西?

如果它是智能的,有什么警告?是否有某些类型的查询无法以这种方式进行评估?我需要注意哪些性能问题?

谢谢

安德鲁

c# nhibernate performance

6
推荐指数
1
解决办法
1417
查看次数

CQRS中的验证和错误修正

我得到了CQRS的一般概念,但是当涉及到超越示例代码和幻灯片以处理现实世界问题时,我有一些问题.

  1. 验证

    当您需要验证涉及检查数据库中的值的命令时,您会怎么做?注册服务,我必须输入一个唯一的电子邮件地址.我听到的一个论点是用户输入重复的电子邮件地址的可能性非常小,所以只需在处理命令时处理它并向他们发送一封"抱歉"的电子邮件,或者建议他们重置密码.因此,该过程避免了为了验证而具有读取模型.但是,如何在命令处理程序中处理重复的情况?你怎么知道那是重复的?检查一个readmodel?你可能首先使用它以获得更好的可用性.

  2. 功能/修复错误的更改

    当您需要更改命令的工作方式或修复错误时会发生什么?在仅附加的哲学中,我如何处理所有旧命令和命令处理程序?我不能重命名他们_legacy并隐藏他们离开,否则我的事件反序列化将无法正常工作.有什么优雅的解决方案可以解决这个问题?

谢谢

cqrs

6
推荐指数
1
解决办法
767
查看次数

如何从编译的引用lib中判断调用程序集是否处于DEBUG模式

我有一个引用的库,在那里,如果引用它的程序集处于DEBUG/RELEASE模式,我想执行不同的操作.

是否可以打开调用程序集处于DEBUG/RELEASE模式的条件?

有没有办法做到这一点,而不诉诸于:

bool debug = false;

#if DEBUG
debug = true;
#endif

referencedlib.someclass.debug = debug;
Run Code Online (Sandbox Code Playgroud)

引用程序集始终是应用程序的起点(即Web应用程序.

c#

6
推荐指数
1
解决办法
619
查看次数

使用(流利)NHibernate与StructureMap(或任何IoCC)

在我学习NHibernate的过程中,我已经达到了下一个障碍; 我该如何将它与StructureMap集成?

虽然代码示例非常受欢迎,但我对一般过程更感兴趣.

我打算做的是......

  • 使用Fluent NHibernate创建我的类映射以在NHibs配置中使用
  • 实现ISession和ISessionFactory
  • 将我的ISessionFactory实例作为单例引导到StructureMap中
  • 使用StructureMap注册ISession,使用per-HttpRequest缓存

但是,不要我需要调用我的会话实例各种整洁行动方法的HttpRequest的结束(因为这就是它的生命结束)?

如果我在Dispose()中进行整理,那么structuremap会为我解决这个问题吗?

如果没有,我该怎么办?

谢谢

安德鲁

c# structuremap nhibernate fluent-nhibernate

5
推荐指数
1
解决办法
3507
查看次数

防止Fluent NHibernate选择n + 1

我有一个相当深的对象图(5-6个节点),当我遍历它的部分时,NHProf告诉我我有一个"选择N + 1"问题(我这样做).

我所知道的两个解决方案是

  1. 渴望加载孩子
  2. 分解我的对象图(和急切的负载)

我真的不想做这些中的任何一个(虽然我可能会稍后将图表分开,因为我预测它会增长)

目前....

是否有可能告诉NHibernate(使用FluentNHibernate)每当我尝试访问子进程时,一次性加载它们,而不是select-n + 1-ing,因为我迭代它们?

我也得到了"无限结果集",这可能是同样的问题(或者更确切地说,如果可能的话,将由上述解决方案解决).

每个子集合(整个图表)将只有大约20个成员,但20 ^ 5很多,所以当我得到root时我不想急于加载所有内容,而只是每当我获取所有子集合时靠近它.

编辑:事后的想法....如果我想在渲染孩子时引入分页怎么办?我是否必须在这里打破我的对象图,或者我可以用一些偷偷摸摸来解决所有这些问题?

nhibernate select fluent-nhibernate

5
推荐指数
1
解决办法
4403
查看次数

backgroundworker阻止MVC控制器动作

我想在新线程/异步中从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不会立即返回?

更重要的是,我需要做些什么来完成这项工作?

谢谢

asp.net-mvc multithreading backgroundworker

5
推荐指数
1
解决办法
4297
查看次数

uri操纵类.net

是否有适合.NET的OSS URI操作类?

请不要建议BCL Uri课程,或所有其他方式的手动黑客,我可以做几乎无用的事情.

我正在寻找一个强大的库来处理所有不同形式的uris(相对的,绝对的,有/没有查询字符串等),让我以优雅的方式访问和操作所有片段.

谢谢

c#

5
推荐指数
1
解决办法
887
查看次数

多子域cookie和ajax问题

我需要一个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.comabc.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域不能使这个工作?

谢谢

cookies ajax jquery cross-domain

5
推荐指数
1
解决办法
4705
查看次数

在ruby中生成一个进程,捕获stdout,stderr,获取存在状态

我想从ruby rake脚本运行一个可执行文件 foo.exe

我希望将输出STDOUTSTDERR输出foo.exe直接写入控制台我正在运行rake任务.

当进程完成时,我想将退出代码捕获到变量中.我该如何实现这一目标?

我一直在玩backticks,process.spawn,system但我不能得到我想要的行为,只有部分

更新:我在Windows上,在标准命令提示符下,而不是cygwin

ruby

5
推荐指数
1
解决办法
2266
查看次数