问题列表 - 第2480页

NHibernate:一个基类,几个映射

我对NHibernate相对比较新,但是我已经将它用于最后几个程序而且我很喜欢.我遇到了需要将4-5个数据库中的数据聚合到一个数据库中的情况.具体来说,它是序列号数据.每个数据库都有自己的映射文件,但最终实体都共享相同的基本结构(Serial类).

我理解NHibernate希望每个类都有一个映射,所以我最初的想法是拥有一个基本的Serial Class,然后为每个不同的数据库继承它,并创建一个唯一的映射文件(继承的类将没有内容).这应该非常适合抓取所有数据并填充对象.我想要做的是使用基类映射将这些继承的类(不确定正确的术语是什么)保存到基类表中.

问题是我不知道如何强制NHIbernate为对象使用特定的映射文件.使用'session.save()'时,将继承的类转换为基类没有任何作用(它抱怨没有映射).

有没有办法明确指定使用哪个映射?或者是否只有一些OOP主体我缺少更具体地将继承的类转换为基类?或者这个想法是个坏主意.

关于NHibernate(第8章)我可以找到的所有继承内容似乎都不完全适用于这个函数,但我可能是错的(每个具体类的表看起来可能有用,但我可以'关于NHibernate如何确定要做什么,完全包围我的头.

c# oop nhibernate nhibernate-mapping

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

是否可以重载ShowDialog(),以便子表单作为out参数返回信息?

在之前关于如何从对话框窗口返回字符串的问题中,yapiskan建议重载子窗体的ShowDialog()方法以包含out参数.

我的问题是这是否是C#中的一个好方法.

这是一些示例代码,基于yapiskan的建议.在子窗体中(在此示例中,它是一个带有文本框的窗体),您只需添加ShowDialog重载并将UI值分配给out参数:

public DialogResult ShowDialog(out string s)
{
    DialogResult result = this.ShowDialog();
    s = this.textBox1.Text;
    return result;
}
Run Code Online (Sandbox Code Playgroud)

要显示表单并检索输入的文本,请执行以下操作:

using (CustomDialog frm = new CustomDialog())
{
    string s;
    if (frm.ShowDialog(out s) == DialogResult.OK)
    {
        // do something with s
    }
}
Run Code Online (Sandbox Code Playgroud)

我能想到的一个优点是,这种方法迫使CustomDialog表单的用户通过表单的ShowDialog方法获取它所包含的信息(而不是来自知道它的所谓方法,如GetMyData()或其他东西) .

.net c# winforms

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

在Javascript中从数组中删除空元素

如何从JavaScript中删除数组中的空元素?

有一种简单的方法,还是我需要循环并手动删除它们?

javascript arrays node.js

1006
推荐指数
19
解决办法
85万
查看次数

在.NET中是否有一种方法可以使方法的重载首先出现在Intellisense下拉列表中?

在表单中,我添加了ShowDialog()的重载.在Visual Studio中,此重载在Intellisense中显示为第三个版本.如何使重载函数显示为#1(即默认值)?

.net c# intellisense visual-studio

7
推荐指数
2
解决办法
737
查看次数

合并多个STL容器,删除重复元素的最佳方法?

我有两个要合并的STL容器,删除多次出现的元素.例如:

typedef std::list<int> container;
container c1;
container c2;

c1.push_back(1);
c1.push_back(2);
c1.push_back(3);

c2.push_back(2);
c2.push_back(3);
c2.push_back(4);

container c3 = unique_merge(c1, c2);
// c3 now contains the following 4 elements:
//   1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)

std :: unique似乎只适用于相邻元素,在我的情况下,容器可以是任何顺序.我猜我可以做一些std :: set trickery:

container unique_merge(const container& c1, const container& c2)
{
    std::set<container::value_type> s;
    BOOST_FOREACH(const container::value_type& val, c1)
        s.insert(val);
    BOOST_FOREACH(const container::value_type& val, c2)
        s.insert(val);
    return container(s.begin(), s.end());
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法或者我错过了明显出血的东西?

c++ stl

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

是否可以对提交进行CVS注释?

我想我真的在帮助忘记的人之后,Cruise Control向所有人发送了提交的详细信息,因此人们热衷于添加有意义的评论,但有时会忘记.

cvs

3
推荐指数
2
解决办法
895
查看次数

最优雅的UI用于分类项目?

我有一组项目,用户需要以多种方式进行分组/分类.举个例子,假设它是汽车的集合,用户希望通过以下方式对它们进行分类:

  • 颜色(红色,银色,蓝色,黑色等)
  • 车身形状(舱口,轿车,轿跑车,旅行车等)
  • 座椅(2,4,5,6等)
  • 等等

您是否曾经遇到过这样一种特别优雅的方式,它允许用户完全自由地定义自己的类别和价值观?

显然,在任何设计中都会有许多权衡取舍.例如,可学习的设计可能效率不高,反之亦然.或者某些设计可能比其他设计对房地产要求更高.有些人的开发时间比其他人长得多.

无论如何,如果你已经看到 - 或设计 - 一个很好的模式,我会有兴趣听到它.如果你有截图,那就更好了.

尝试澄清:标签确实是对事物进行分类的一种很好的方式,但在我看到的所有实践中,只有一个级别的标记.用户一般不会去定义一个类/属性和商品的价值在该类别中.要使用上面的示例和StackOverflow的标记,您可以将汽车标记为"蓝色","轿车","4"等.StackOverflow没有固有的知识,一个项目不能被标记为"轿车"和"轿跑车".

我正在考虑的界面需要知道这种事情,因此用户定义的属性建议更符合我的想法.我只是想找到一个具体的例子,说明如何优雅地实现这种系统(在桌面应用程序中,如果这有所不同).

那更清楚吗?如果没有,请发表评论,我会再次澄清.:)

usability user-interface

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

使用附加列选择INTO

我试图从一个表插入一行的副本到另一个具有相同模式的表,并添加一列(时间戳)以提供MS Sql Server 2005中第一个表的"历史记录".

所以,我的查询,没有附加列将是:

"SELECT INTO [WebsiteHistory] FROM [Website]"
Run Code Online (Sandbox Code Playgroud)

我也希望填充时间戳列,但我不确定如何最好地执行此操作.我想做点什么:

"SELECT Website.*, '" + DateTime.Now.ToShortDateString() + "' INTO [WebsiteHistory] FROM [Website]"
Run Code Online (Sandbox Code Playgroud)

但这不应该工作,特别是如果timestamp列不是最后一列.有没有办法做到这一点?

.net sql t-sql sql-server-2005

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

列表项变为浮点数:左侧块在IE6中看起来很奇怪

我的UL看起来像这样:

<ul class="popular-pages">
    <li><a href="region/us/california/">California</a></li>
    <li><a href="region/us/michigan/">Michigan</a></li>
    <li><a href="region/us/missouri/">Missouri</a></li>
    <li><a href="region/us/new-york/">New York</a></li>
    <li><a href="region/us/oregon/">Oregon</a></li>
    <li><a href="region/us/oregon-washington/">Oregon; Washington</a></li>
    <li><a href="region/us/pennsylvania/">Pennsylvania</a></li>
    <li><a href="region/us/texas/">Texas</a></li>
    <li><a href="region/us/virginia/">Virginia</a></li>
    <li><a href="region/us/washington/">Washington</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

和CSS看起来像这样:

ul.popular-pages li a { 
    display:block; 
    float:left; 
    border-right:1px solid #b0b0b0; 
    border-bottom:1px solid #8d8d8d; 
    padding:10px; 
    background-color:#ebf4e0; 
    margin:2px; color:#526d3f 
}
ul.popular-pages li a:hover { 
    text-decoration:none; 
    border-left:1px solid #b0b0b0; 
    border-top:1px solid #8d8d8d; 
    border-right:none; 
    border-bottom:none;
}
Run Code Online (Sandbox Code Playgroud)

所以它在现代浏览器中运行良好,但它在IE6中看起来像这样.有什么建议? 替代文字

css internet-explorer-6

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

在SQL Management Studio中删除/更新之前确认?

因此,连续第二天,有人已经清除了整个数据表,而不是他们试图删除的那一行,因为他们没有合格的where子句.

我一直在mgmt工作室选项上下,但找不到确认选项.我知道其他数据库的其他工具也有它.

sql-server ssms

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