我已经开始使用NHibernate 3.0和PostgreSQL进行一个小项目,到目前为止,由于NHibernate站点已关闭,这个过程有点粗糙,我确信这个答案在他们的网站上.
我有一个包含这两列的数据库(当然在真实表中还有更多):
int ID
String Feature
Run Code Online (Sandbox Code Playgroud)
现在我正在使用FluentNHibernate进行映射,所以这样的事情:
public class MyEntityMap: ClassMap<MyEntity>
{
public MyEntityMap()
{
Id(x => x.ID);
Map(x => x.Feature);
}
}
Run Code Online (Sandbox Code Playgroud)
和一个LINQ查询来获取数据
var strucs = from str in session.Query<MyEntity>()
where str.ID < 5
select str;
Run Code Online (Sandbox Code Playgroud)
该查询将生成正确的SQL语句.问题是,因为我的列名中有大写字母,你必须用引号将它们包装起来,但生成的SQL代码看起来像这样:
SELECT this_.ID as ID0_0_, this_.feature as feature0_0_,
FROM "MyEntity" this_ WHERE this_.ID < 5
Run Code Online (Sandbox Code Playgroud)
列中没有引号.如果我运行这个,我得到一个"列this_.id"找不到等.
有谁知道如何让NHibernate将列名包装在引号中?
编辑:我不能小写列名称,因为有些列第三方程序需要全部为大写.
我尝试添加.ExposeConfiguration(cfg => cfg.SetProperty("hbm2ddl.keywords","auto-quote")但它似乎没有做任何事情.
这可能看起来像一个非常奇怪的问题,但是可以.ui
从Qt对象生成Qt Designer表单(),比如继承的东西QWidget
吗?
我的计划是在代码中构建一个简单的动态表单,因为用户选择他们想要的东西,例如字段,控件类型,然后转储.ui
文件,以便他们可以根据需要调整布局.
然后代码将使用QUiLoader
该类重新加载ui
文件并显示已修改或未显示的ui
文件.
只是想知道.NET应用程序是否可以提前编译为本机代码?即使我可以,我也不打算这样做; 我只是好奇.
谢谢
我刚看完YouTube上的Google清洁代码视频(请参阅链接,第一篇文章),关于if
从代码中删除语句并使用多态.
观看视频后,我看了一下我在观看视频之前编写的一些代码,并注意到我可以使用这种方法的地方,主要是多次实现相同类型逻辑的地方.举个例子:
我有一些像这样的代码.
public int Number
{
get
{
string returnValue;
if (this.internalTableNumber == null)
returnValue = this.RunTableInfoCommand(internalTableName,
TableInfoEnum.TAB_INFO_NUM);
else
returnValue = this.RunTableInfoCommand(internalTableNumber.Value,
TableInfoEnum.TAB_INFO_NUM);
return Convert.ToInt32(returnValue);
}
}
Run Code Online (Sandbox Code Playgroud)
RunTableInfoCommand的作用并不重要,但主要的是我有许多具有完全相同的属性的属性,if
唯一改变的是TableInfoEnum.
我想知道是否有人可以帮助我重构这一点,以便它仍然做同样的事情但没有任何if
陈述?
在过去的几天里,我一直在使用winforms玩MVP模式,只有一件事我不知道该怎么做.如何从另一个视图创建子窗体.这是一个有效的选择吗?
public class MyForm : IMainFormView
{
private MainFormPresenter pres;
public MyForm() { pres = new MainFormPresenter(this); }
//Event from interface.
public event EventHandler<EventArgs> LoadSecondForm;
public void SomeButtonClick()
{
LoadSecondForm(this, EventArgs.Empty);
}
}
public class MainFormPresenter
{
private IMainFormView mView;
public MainFormPresenter(IMainFormView view) {
this.mView = view;
this.Initialize();
}
private void Initialize() {
this.mView.LoadSecondForm += new EventHandler<EventArgs>(mView_LoadSecondForm);
}
private void mView_LoadSecondForm(object sender, EventArgs e) {
SecondForm newform = new SecondForm(); //Second form has its own Presenter.
newform.Load(); // Load the …
Run Code Online (Sandbox Code Playgroud) 关于SQL Server 2005中的触发器的一般性问题.
在什么情况下表触发器被触发,它们不是什么情况?
任何要演示的代码示例都会很棒.
我正在编写一个基于审计的数据库,只是想知道任何可能不会触发我为我的表设置更新,删除和插入的触发器的情况.
我的意思是一个例子,
UPDATE MyTable SET name = 'test rows' WHERE id in (1, 2, 3);
Run Code Online (Sandbox Code Playgroud)
以下语句仅触发更新触发器一次.
def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):
print "-- This parrot wouldn’t", action
print "if you put", voltage, "volts through it."
print "-- Lovely plumage, the", type
print "-- It’s", state, "!"
Run Code Online (Sandbox Code Playgroud)
我开始学习python.我可以使用parrot(5,'dead')和parrot(电压= 5)调用此函数.但是为什么我不能用parrot调用相同的函数(电压= 5,'死')?
是否存在使用Qt的跨平台方式来判断计算机是否已退出待机或休眠状态.
我需要能够检测计算机何时退出待机状态以重置/继续进程.在这种情况下,它是通过串行端口连接到GPS.
有没有人知道是否可以展平QTreeView/QTreeWidget,同时仍然能够扩展子项目.
默认是什么:
- A
-> A1
-> A2
- B
-> B2
+ C
Run Code Online (Sandbox Code Playgroud)
-
被扩展并+
崩溃
我想要的是什么:
- A
A1
A2
- B
B2
+ C
Run Code Online (Sandbox Code Playgroud)
全都崩溃了
+ A
+ B
+ C
Run Code Online (Sandbox Code Playgroud)
A, B, C
是根项目.
我对MVP和实体框架世界相当陌生,所以请耐心等待.
我目前有一个View + Presenter组合,视图有两个事件Edit和Delete,演示者只是监听这些事件.我还有一个服务对象和存储库设置.服务层采用一些存储库实现,这些实现采用ObjectContext,因此构造的顺序是(将顶层对象传递给它下面的对象:
ObjectContext
|
V
Repositries
|
V
Service Object
|
V
Presenter
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我在顶部创建对象上下文时,它一直存在,演示者处于活着状态,这意味着编辑和删除使用来自服务的相同上下文实例.
因此,调用ServiceObject.Delete和ServiceObject.Edit会使用相同的上下文,这使得很难管理更改跟踪.根据我的理解,上下文应该只是短暂的,只有一个工作单元,对我来说编辑和删除都是不同的工作.
您如何使用实体框架进行DI并仍然管理上下文生命周期?
我看到人们刚刚在存储库中新建了对象上下文,这是一个很好的模式.
或者我应该在服务对象中执行此操作,例如:
ServiceObject{
public void Edit(// some args) {
Using(var context = new MyObjectContext) {
var repo = new MyRepo(context);
var entity = repo.GetForID(12);
// Do some stuff for edit
context.SaveChanges();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我不再将我的存储库传递给ServiceObject的构造函数而不执行DI :(.
在这种情况下我该怎么办?
有谁知道我可以看到的任何开源项目可以帮助我解决这个问题.
谢谢.
c# ×4
qt ×3
.net ×2
c++ ×2
python ×2
audit ×1
compilation ×1
database ×1
machine-code ×1
mvp ×1
native ×1
nhibernate ×1
polymorphism ×1
postgresql ×1
pyqt ×1
sql-server ×1
triggers ×1
winforms ×1