小编Joh*_*ohn的帖子

NHibernate Cascade =保存更新"?

免责声明:我是一名NHibernate noobie,所以希望这个问题有道理.我有两个类之间的多对多关系,比如......

public class Entity1
{
    public virtual Guid EntityId { get; set; }
    public virtual IList<Entity2> Entity2List;
} 

Public class Entity2
{
    public virtual Guid EntityId { get; set; }
    public virtual IList<Entity1> Entity1List;
}
Run Code Online (Sandbox Code Playgroud)

我在两个类映射中都添加了一个多对多关系,定义了一个关联表但不确定要使用哪个级联选项.我希望能够创建一个新的Entity1实例,将新的Entity2实例添加到它的列表中,调用Save,并将两者都插入到数据库中(反之亦然).删除实体时,它应删除与子实体的任何关联,但不删除子实体本身.我应该使用cascade ="save-update"吗?

c# nhibernate nhibernate-cascade

12
推荐指数
1
解决办法
1万
查看次数

List.AddRange与IEnumerable <T>参数不起作用?

我有以下场景,我想在列表中添加一些项目...

List<T> items = new List<T>();
IEnumerable<T> addItems = someCollection.Where(...);
items.AddRange(addItems);
Run Code Online (Sandbox Code Playgroud)

使用此代码,列表中不会添加任何项目,但如果我在Linq语句之后添加.ToList(),则会正确添加项目.我想这是由于延迟执行,但我想如果List.AddRange函数接受一个I​​Enumerable,它将枚举要添加的项目.

有人可以清楚为什么会这样吗?

c# ienumerable list addrange deferred

8
推荐指数
1
解决办法
2万
查看次数

使用ServiceRoute时指定WCF绑定

我目前正在使用以下代码注册WCF服务:

var factory = new DefaultServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("XXXEndPoint", factory, IXXXEndPoint)));
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我还需要更改阅读器配额设置的MaxStringContentLength属性.似乎使用默认值8192,无论我是否尝试更改此设置,我想这是来自DefaultServiceModel?

是否有任何合适的钩子来覆盖DefaultServiceModel上的这个设置,或者我应该派生自己的服务主机/模型类,还是我以错误的方式解决这个问题?

任何建议赞赏.

编辑:请注意,绑定的配置必须以编程方式执行(而不是通过配置文件).

谢谢

wcf maxstringcontentlength routetable

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

在NHibernate QueryOver SelectGroup中截断DateTime

我有一个相当普遍的QueryOver查询,包含以下内容,

.SelectList(list => list
    .SelectGroup(() => txn.GroupField)
    .SelectGroup(() => txn.Date))
.List<object[]>()
Run Code Online (Sandbox Code Playgroud)

此查询按预期工作,但我现在需要按截断日期进行分组,因为这些对象的某些日期可能包含时间组件.这似乎应该是一个微不足道的变化,但我找不到NHibernate支持的方式.

显而易见的解决方案是下面的更改,但不支持.

.SelectGroup(() => txn.Date.Date))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢

nhibernate datetime truncate group-by queryover

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

使用 REST 的主/细节

我确信这个话题之前一定已经被覆盖了,所以我很高兴能指出我在搜索时可能遗漏的任何文章等。

我需要实现一个非常简单的 REST API 来添加和检索主/明细关系中的记录。我的两个选项如下:

选项1

POST /master
POST /master/[id]/details
GET  /master/[id]
GET  /master/[id]/details
Run Code Online (Sandbox Code Playgroud)

优点

  • 感觉更“RESTful”
  • 可以检索细粒度数据以提高性能

缺点

  • 没有至少一个细节,大师就没有意义。如何处理原子性?如果添加时细节失败,在主节点上补偿 DELETE?
  • 检索主/详细信息集需要多次调用

选项 2

POST /master_and_details
GET  /master_and_details/[master id]
Run Code Online (Sandbox Code Playgroud)

优点

  • 易于管理原子性

缺点

  • 更复杂的管理结构
  • GET 必须返回整个结构(并不总是有效的)
  • 感觉不是很“RESTful”

谢谢,约翰

rest post get master-detail

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