以下是域模型类:
public abstract class BaseClass
{
...
}
public class ChildClass : BaseClass
{
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,父类是抽象的,这就是在使用流畅的nhibernate进行映射时给我带来一些困难的原因.我的鉴别器是一个字节(数据库中的tinyint).因为它不是一个字符串,我不能管理设置在基类中的鉴别值,这并不工作(从映射类BaseClass的拍摄):
DiscriminateSubClassesOnColumn<byte>("Type")
.SubClass<ChildClass>()
.IsIdentifiedBy((byte)OperationType.Plan)
.MapSubClassColumns(p => { ... })
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是:
类初始化方法UnitTest1.MyClassInitialize引发异常.NHibernate.MappingException:NHibernate.MappingException:无法格式鉴别价值实体的BaseClass的SQL字符串---> System.FormatException:输入字符串的不正确的格式..
以下帖子似乎解释了会发生什么.他们给使用XML的解决方案,但不与功能NHibernate:http://forum.hibernate.org/viewtopic.php?t=974225
谢谢您的帮助.
c# nhibernate domain-driven-design nhibernate-mapping fluent-nhibernate
我正面临一个问题.
我有一个与web服务交互的DLL,它将端点配置保存在app.config文件中.
我想在我的宿主应用程序中使用这个dll.主机应用程序有自己的配置文件.每次更改服务端点时,我都必须将dll配置的内容合并到主机的配置中.
有没有办法可以使用两个配置文件.所以dll使用自己的配置,而主机应用程序使用自己的配置.
所以我在一个模块中有一个类,它有一些静态方法.其中一些静态方法只是做crc检查和填充,并且它们在类之外并不是真的有用(我只是在java或C++中使它们成为私有静态方法).我想知道我是否应该让它们成为全局类函数(在类之外).
这样做有什么好处吗?这个类正在被导入,from module import class所以我并不担心这些模块也会被引入.但是,我应该让它们成为类方法,以便from module import *更安全吗?
我目前正在用C++查看一些单元测试库,并有一些问题:
boost.test似乎没有模拟工具,但我很难想象在没有创建模拟对象/函数的情况下进行单元测试.你怎么在boost.test中做到这一点,你是手动做的(怎么样?我的意思是,有几种方法我可以想到,这些看起来都不好)或者你只是没有模拟对象吗?
googletest和googlemock看起来像mockingupport的好库,但它需要每个被模拟的对象都是虚拟的.我不是很喜欢这个,并不是我担心性能(我可以定义一个宏来解决它的生产代码)但是我觉得这非常具有侵入性.我想知道是否有另一种解决方案不需要对现有代码进行太多更改?(喜欢那里的clojure)
我有一个datagridview,我在其中显示有关产品的信息.我想在用户选择一个单元格然后右键单击该单元格时绑定一个上下文菜单.我有另一个contextmenu,并且一个绑定到datagridview的列.如果用户右键单击上下文菜单显示的列.
我试过这样但是不起作用.上下文菜单显示用户右键单击单元格的时间,但绑定到列标题的上下文菜单不起作用.
private void GridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
productContextMenu.Show(GridView1, e.Location);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在用户右键单击datagridview时显示?
很多人提前.
编辑
Thnx的答案.我解决了这个问题:
private void GridView1_MouseUp(object sender, MouseEventArgs e)
{
DataGridView.HitTestInfo hitTestInfo;
if (e.Button == MouseButtons.Right)
{
hitTestInfo = GridView1.HitTest(e.X, e.Y);
if (hitTestInfo.Type == DataGridViewHitTestType.Cell)
{
productContextMenu.Show(GridView1, e.Location);
}
}
}
Run Code Online (Sandbox Code Playgroud)
上下文都显示了.当我单击上下文菜单显示的列时,以及单击上下文菜单显示的单元格时.
我们公司有一个biztalk服务器(一个虚拟的(1!)...)和一个保存数据的sql server.现在我们有很多数据流量.我说的是成千上万.所以我实际上不确定一台服务器是否相当安全,但我们的公司并不那么容易说服.
最近我们遇到了很多问题.
请允许我详细说明,所以我没有遗漏任何东西:
我们的服务器有5个应用:
自从我们使用47个业务流程部署应用程序以来,我们遇到了问题.很多这些编排使用赋值形状,使用c#代码进行映射.这是因为我们使用HL7扩展,这是一种特殊的,所以通过使用c#code和xpath,映射更容易,因为很多这些模式看起来很相似.c#读入通过xpath接收的XmlNodes,并返回XmlNode,然后再将其分配给biztalk消息.我不确定这可能是原因,但我想我会提到它.
发送和接收端口有许多不同的类型:文件,MQSeries,SQL,MLLP,FTP.每种类型都有不同的主机实例,以平衡负载.我们的业务流程使用BiztalkApplication主机.
在这个服务器上还运行了几个脚本,主要是ftp上传脚本和拉链脚本,每天拉链文件每半小时压缩一次,并在一个月后删除zip文件.我们在备份文件上使用这个zipscript(我们备份很多,备份也在我们的服务器上),我们这样做是因为服务器在将文件发送到有很多(很多)文件的位置时出现问题,所以之后文件减少到拉链它变得更好.
现在我们最近遇到的问题主要是两个主要问题:
我们注意到在重新启动主机实例后,实例编号再次快速下降.因此,我们尝试有选择地重新启动不同的主机实例以找到问题.我们注意到最终重新启动文件发送/接收主机实例就可以了.所以我们认为文件发送会成为问题.结合我们做了很多备份.所以我们用mqseries备份替换了文件类型备份.发生同样的问题,有趣的是,重新启动文件发送/接收主机仍然可以解决问题.
在事件查看器中也找不到任何错误.
在事件查看器中,我们注意到以下错误(这些错误不止一个):
具有URL"SQL:// ZNACDBPEG/mdnd0001 /"的接收位置"MdnBericht SQL"正在关闭.详细信息:"已超出错误阈值.接收位置正在关闭.".
消息传递引擎无法将具有URL"\ m2mservices\Othello_import $\DataFilter Start*.xml"的接收位置"M2m Othello Export Start Bestand"添加到适配器"FILE".原因:"FILE适配器无法访问文件夹\ m2mservices\Othello_import $\DataFilter Start.验证此文件夹是否存在.错误:登录失败:未知用户名或密码错误."
FILE适配器无法访问文件夹\ m2mservices\Othello_import $\DataFilter Start.确认此文件夹存在.错误:登录失败:未知的用户名或密码错误.
尝试连接到服务器"ZNACDBBTS"上的"BizTalkMsgBoxDb"SQL Server数据库失败.错误:"用户登录失败".用户未与受信任的SQL Server连接关联.
似乎此时登录失败,因此其他服务也遇到问题,最终它们被关闭.
问题是,我们的用户是管理员,并且"有时"密码错误是不可能的.我们已经确认问题可能是由于基础设施问题,但这不是真正的部门.
我知道这是一个很长的帖子,但我们不确定该怎么做.添加另一台服务器并平衡负载会解决我们的问题吗?有没有办法确保我们的平衡,并知道从哪里开始拆分?什么是正常的负载等?
我感谢任何答案,因为这些问题越来越严重,我们也处于最后期限.
非常感谢您的回复!
如何将这两个select语句组合到一个查询中:
SELECT SUM( incidents ) AS fires, neighborhoods AS fire_neighborhoods
FROM (
SELECT *
FROM `fires_2009_incident_location`
UNION ALL SELECT *
FROM `fires_2008_incident_location`
UNION ALL SELECT *
FROM `fires_2007_incident_location`
UNION ALL SELECT *
FROM `fires_2006_incident_location`
) AS combo
GROUP BY fire_neighborhoods ORDER BY fires DESC
SELECT SUM( incidents ) AS adw, neighborhoods AS adw_neighborhoods
FROM (
SELECT *
FROM `adw_2009_incident_location`
UNION ALL SELECT *
FROM `adw_2008_incident_location`
UNION ALL SELECT *
FROM `adw_2007_incident_location`
UNION ALL SELECT *
FROM `adw_2006_incident_location`
) AS combo2 …Run Code Online (Sandbox Code Playgroud) 我有一个简单的场景,包括View,ViewModel和自定义类型类.
模型类是这样的:
public class Person : Validation.DataError, INotifyPropertyChanged
{
#region INotifyProperty
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
public global::System.String name
{
get
{
return _name;
}
set
{
_name= value;
RaisePropertyChanged("name");
}
}
private global::System.String _name;
Run Code Online (Sandbox Code Playgroud)
}
在ViewModel中我有一个Person属性:
private Model.Person person;
public Model.Person Person
{
get
{
return person;
}
set
{
this.person= value;
this.RaisePropertyChanged("Person");
this.SavePersonCommand.OnCanExecuteChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我有一个绑定到Person.name的文本框
所以ViewModel没有执行set方法,因为Person对象仍然是相同的...它正在Model属性中执行set方法.
我想让用户更改人名并调用另一种方法(搜索Web服务和其他东西......),我认为此功能应该在ViewModel中.
我正在使用MVVM …
有人可以解释一下ScriptManager和ClientScript之间的区别吗?
当我在Button_Clicked事件中使用ClientScript时,ClientScript运行良好,但是当我在GridView的GridView_RowUpdated中使用它时,它不起作用.(GirdView包含在更新面板中).然后我尝试了ClientScript,它在这种情况下运行得很好.
有没有办法在C#中的Winforms DataGridView单元格中添加控件(例如按钮)?
(我的目标是在网格的不同单元格中放置各种控件......)
c# ×7
datagridview ×2
.net ×1
app-config ×1
asp.net ×1
biztalk ×1
c++ ×1
contextmenu ×1
global ×1
mvvm ×1
mysql ×1
nhibernate ×1
python ×1
select ×1
silverlight ×1
sql-server ×1
syntax ×1
union ×1
unit-testing ×1
winforms ×1
xpath ×1