我对NHibernate相对比较新,但是我已经将它用于最后几个程序而且我很喜欢.我遇到了需要将4-5个数据库中的数据聚合到一个数据库中的情况.具体来说,它是序列号数据.每个数据库都有自己的映射文件,但最终实体都共享相同的基本结构(Serial类).
我理解NHibernate希望每个类都有一个映射,所以我最初的想法是拥有一个基本的Serial Class,然后为每个不同的数据库继承它,并创建一个唯一的映射文件(继承的类将没有内容).这应该非常适合抓取所有数据并填充对象.我想要做的是使用基类映射将这些继承的类(不确定正确的术语是什么)保存到基类表中.
问题是我不知道如何强制NHIbernate为对象使用特定的映射文件.使用'session.save()'时,将继承的类转换为基类没有任何作用(它抱怨没有映射).
有没有办法明确指定使用哪个映射?或者是否只有一些OOP主体我缺少更具体地将继承的类转换为基类?或者这个想法是个坏主意.
关于NHibernate(第8章)我可以找到的所有继承内容似乎都不完全适用于这个函数,但我可能是错的(每个具体类的表看起来可能有用,但我可以'关于NHibernate如何确定要做什么,完全包围我的头.
在之前关于如何从对话框窗口返回字符串的问题中,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()或其他东西) .
如何从JavaScript中删除数组中的空元素?
有一种简单的方法,还是我需要循环并手动删除它们?
在表单中,我添加了ShowDialog()的重载.在Visual Studio中,此重载在Intellisense中显示为第三个版本.如何使重载函数显示为#1(即默认值)?
我有两个要合并的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)
有没有更好的方法或者我错过了明显出血的东西?
我想我真的在帮助忘记的人之后,Cruise Control向所有人发送了提交的详细信息,因此人们热衷于添加有意义的评论,但有时会忘记.
我有一组项目,用户需要以多种方式进行分组/分类.举个例子,假设它是汽车的集合,用户希望通过以下方式对它们进行分类:
您是否曾经遇到过这样一种特别优雅的方式,它允许用户完全自由地定义自己的类别和价值观?
显然,在任何设计中都会有许多权衡取舍.例如,可学习的设计可能效率不高,反之亦然.或者某些设计可能比其他设计对房地产要求更高.有些人的开发时间比其他人长得多.
无论如何,如果你已经看到 - 或设计 - 一个很好的模式,我会有兴趣听到它.如果你有截图,那就更好了.
尝试澄清:标签确实是对事物进行分类的一种很好的方式,但在我看到的所有实践中,只有一个级别的标记.用户一般不会去定义一个类/属性和商品的价值在该类别中.要使用上面的示例和StackOverflow的标记,您可以将汽车标记为"蓝色","轿车","4"等.StackOverflow没有固有的知识,一个项目不能被标记为"轿车"和"轿跑车".
我正在考虑的界面需要知道这种事情,因此用户定义的属性建议更符合我的想法.我只是想找到一个具体的例子,说明如何优雅地实现这种系统(在桌面应用程序中,如果这有所不同).
那更清楚吗?如果没有,请发表评论,我会再次澄清.:)
我试图从一个表插入一行的副本到另一个具有相同模式的表,并添加一列(时间戳)以提供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列不是最后一列.有没有办法做到这一点?
我的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中看起来像这样.有什么建议?

因此,连续第二天,有人已经清除了整个数据表,而不是他们试图删除的那一行,因为他们没有合格的where子句.
我一直在mgmt工作室选项上下,但找不到确认选项.我知道其他数据库的其他工具也有它.
.net ×3
c# ×3
arrays ×1
c++ ×1
css ×1
cvs ×1
intellisense ×1
javascript ×1
nhibernate ×1
node.js ×1
oop ×1
sql ×1
sql-server ×1
ssms ×1
stl ×1
t-sql ×1
usability ×1
winforms ×1