问题列表 - 第21493页

从集合中删除项目(NHibernate)

我在两个实体(父和子)之间有父子关系.

我的父映射如下:

<class name="Parent" table="Parents">
    ...
    <bag name="Children" cascade="all">
        <key column="ParentID"></key>
        <one-to-many class="Child"></one-to-many>
    </bag>
</class>
Run Code Online (Sandbox Code Playgroud)

我想执行以下操作:

someParent.Children.Remove(someChild);
Run Code Online (Sandbox Code Playgroud)

Child类具有对另一个父类Type的引用.这种关系看起来像

关系图

注意:我为上面的非链接url道歉,我似乎无法使用Markup通过url字符串中的星号

由于这种关系,当调用上面的代码而不是DELETE查询时,会生成一个UPDATE查询,该查询从Child表中删除ParentID(设置为null).

当从Parent.Children集合中删除时,是否可以强制NHibernate完全删除子记录?

UPDATE

@ Spencer的解决方案

非常有吸引力的解决方案,因为这可以在未来的课程中实现.但是,由于在存储库模式中处理会话的方式(在我的特定情况下),这几乎是不可能的,因为我们必须根据应用程序传递会话类型(CallSessionContext/WebSessionContext).

@ Jamie的解决方案

简单快速地实施,但是我遇到了另一个障碍.我的子实体看起来如下: 实体对象

使用新方法时,NHibernate生成一个更新语句,将TypeID和ParentID设置为null,而不是单个删除.如果我错过了实现中的某些内容,请告诉我,因为这种方法可以轻松推进.

@ 此处描述的One-Shot-Delete解决方案概述了取消引用该集合以强制单个删除的想法.与上述结果相同,但发布了更新声明.

//Instantiate new collection and add persisted items
List<Child> children = new List<Child>();
children.AddRange(parent.Children);

//Find and remove requested items from new collection
var childrenToRemove = children
    .Where(c => c.Type.TypeID == 1)
    .ToList();

foreach (var c in childrenToRemove) { children.Remove(m); }
parent.Children = null;

//Set persisted collection to new list …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate

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

T-SQL字符串替换

我需要替换标记{URL}:

DECLARE @PageUrl varchar(200)
DECLARE @Body varchar(MAX)

SET @PageUrl = 'http://www.website.com/site1/site2/pageName.asxp?rid=1232'
SET @Body = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed luctus, 
{URL} enim nec posuere volutpat, neque dui volutpat turpis. '

SET @Body = REPLACE(@Body,'{Url}', CONVERT(varchar,@PageUrl))
PRINT @Body
Run Code Online (Sandbox Code Playgroud)

我的预期结果是:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed luctus,
http://www.website.com/site1/site2/pageName.asxp?rid=1232 enim nec posuere volutpat, neque dui volutpat turpis.
Run Code Online (Sandbox Code Playgroud)

打印结果如下:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed luctus,
http://www.website.com/site1/s enim nec posuere volutpat, neque dui volutpat …
Run Code Online (Sandbox Code Playgroud)

sql t-sql database sql-server

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

GMail"Loading ..."横幅如何运作?

我试图在我自己的应用程序中复制GMail的一个功能.

更改GMail中的文件夹时,显示屏将保留在屏幕上,并在网站顶部显示一个小的加载横幅.
这是可取的,因为它可以防止屏幕全部变白并且在回发时干扰用户工作流程.

我试图用Firebug拆解它,我觉得我已经接近了.
GMail站点由100%大小的Iframe组成,其中包含整个界面.在此框架之后是包含加载横幅的div.div是不可见的,位于Iframe的后面.

在iframe前面移动横幅的脚本被执行了什么?

谢谢,

马丁威比

javascript events user-interface gmail dom

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

在SELECT语句中重置SQL变量

我试图使用计数器变量使用单个UPDATE/SELECT语句对桥表上的某些行进行编号@row.例如:

UPDATE teamrank JOIN (SELECT @row := @row + 1 AS position, name FROM members) 
       USING(teamID, memberID) SET rank = position
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的还是我需要创建一个游标?如果它有帮助,我使用的是MySQL 5.

mysql sql

3
推荐指数
1
解决办法
6449
查看次数

是什么 ?在HTML链接标签?

如果你有一个链接或脚本标签,比如说css或js文件,你在url中有类似的东西,那是什么?例:

<script src="home.js?1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

只是一个基本问题......

html javascript

4
推荐指数
2
解决办法
178
查看次数

如何确定字符串是否仅由第二个字符串给出的字母组成

我有两个字符串.如何确定第一个字符串是否仅由第二个字符串给出的字母组成?

例如:

A = abcd
B = abbcc
Run Code Online (Sandbox Code Playgroud)

应该返回false,因为d不在第二个字符串中.

A = aab
B = ab
Run Code Online (Sandbox Code Playgroud)

应该回归真实.

如果程序大部分时间都返回false,我该如何优化该程序?如果它在大多数情况下都返回true,那么我该如何优化呢?

algorithm

0
推荐指数
1
解决办法
233
查看次数

零星的 ASP.NET 数据错误:“找不到表 0”

在生产环境中部署了 ASP.NET 站点的新版本后,我每秒记录数十个数据错误,几乎总是出现错误“找不到表 0”。我们使用数据集并经常参考Table[0],虽然我了解在访问之前检查数据集的表的防御性编码实践Table[0],但在过去从来不是问题。某个页面会在一秒钟内正常加载,然后在下一秒钟会丢失其数据驱动组件之一。只是看看这是否为任何人敲响了警钟。

更多细节:这次我使用了不同的构建服务器,虽然我认为两者的编译器设置是相同的,但我很难想到有一个开关可以让我的 50% 的数据库调用在没有表的情况下返回。我也将项目切换到 VS 2008,但是当我切换回 VS 2005 时恢复了所有这些更改。我注意到构建的程序集有一个新的MyLibrary .XmlSerializers.dll,它不习惯,但我也无法想象这是造成所有麻烦的原因。(它也不会因调用MyLibrary而失败,或者至少不会超过任何其他时间。)

更新添加:我发现麻烦的构建是“发布”构建,其中工作构建被编译为“调试”。 这能解释吗?

在这些更改修复它之前回滚到构建。(重新启动 SQL Server,我们之前尝试过的步骤没有。)

问题似乎也是基于负载的——这在我们的集成和 QA 环境中毫无问题地巡航,甚至我们的冒烟测试环境——指向生产数据的环境——在轻负载下也很好。

这是否具有您过去可能见过的任何事物的显着特征?

sql-server asp.net dataset

3
推荐指数
1
解决办法
9591
查看次数

GPL下的许可(Bash)脚本?

我写了一些bash脚本(每行<200行代码)我想与世界分享,但由于我是FLOSS粉丝,我首先想到的是根据GPL的条款分享它们.

但是......那是胡说八道吗?我的意思是,我理解为什么要在GPL的条款下共享整个应用程序,但对于这样的小脚本是否有意义?或者将它们作为公共领域分享是最好的事情,因为它们没有什么特别的或花哨的东西?或者那里的脚本是否有任何特殊的许可"处理"?

我非常感谢有关此事的一些意见,并提前感谢.

编辑:感谢大家的答案...我希望我能接受不止一个,因为他们都完全回答了我的问题!

licensing

9
推荐指数
2
解决办法
4705
查看次数

我在哪里可以找到一个好的iPhone/GWT/AppEngine示例?

这些似乎是一个很好的组合 - 我希望至少看到GWT/iPhone整合,但没有太多.

我查看了谷歌制作的读者示例,但它似乎没有利用许多iPhone功能.

我想知道是否有人知道教程/资源显示如何使用位置,方向,拉伸/挤压和各种iPhone特定控件之类的东西 - 以及与谷歌地图等服务的集成.

如果它也使用AppEngine会很好,但如果没有,那么以后很容易集成.

也许我要求的太多,但我甚至会选择一个专注于这些平台的技术博客......

iphone gwt google-app-engine

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

PHP:什么是后全局变量的总长度?

我想知道是否有人知道全球职位的总长度.例如:

$_POST['formInput'] = "hello world, how long can i be?";
Run Code Online (Sandbox Code Playgroud)

我正在创建一个网站,其中有人会将未知数量的字符输入文本区域,因此可能是word文档上的2页.那么,如果有人知道除了使用后全局之外我怎么能做到这一点?(它不能保存在文件中,作为我不希望其他人找到的重要数据)这将非常有帮助.

谢谢

php post global-variables string-length

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