小编Nat*_*n W的帖子

用NHibernate和PostgreSQL引用列名

我已经开始使用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")但它似乎没有做任何事情.

c# postgresql nhibernate fluent-nhibernate

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

Qt对象/类到Qt ui文件

这可能看起来像一个非常奇怪的问题,但是可以.ui从Qt对象生成Qt Designer表单(),比如继承的东西QWidget吗?

我的计划是在代码中构建一个简单的动态表单,因为用户选择他们想要的东西,例如字段,控件类型,然后转储.ui文件,以便他们可以根据需要调整布局.

然后代码将使用QUiLoader该类重新加载ui文件并显示已修改或未显示的ui文件.

c++ user-interface qt

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

.NET应用程序可以编译为本机吗?

只是想知道.NET应用程序是否可以提前编译为本机代码?即使我可以,我也不打算这样做; 我只是好奇.

谢谢

.net native compilation machine-code

8
推荐指数
2
解决办法
1550
查看次数

您如何重构此条件以使用多态?

我刚看完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陈述?

.net c# polymorphism

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

使用MVP加载子视图

在过去的几天里,我一直在使用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)

c# mvp winforms

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

什么时候触发火,什么时候触发火

关于SQL Server 2005中的触发器的一般性问题.

在什么情况下表触发器被触发,它们不是什么情况?

任何要演示的代码示例都会很棒.

我正在编写一个基于审计的数据库,只是想知道任何可能不会触发我为我的表设置更新,删除和插入的触发器的情况.

我的意思是一个例子,

UPDATE MyTable SET name = 'test rows' WHERE id in (1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

以下语句仅触发更新触发器一次.

database sql-server audit triggers

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

函数参数 - Python

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,'死')?

python

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

使用Qt判断PC是否处于待机状态

是否存在使用Qt的跨平台方式来判断计算机是否已退出待机或休眠状态.

我需要能够检测计算机何时退出待机状态以重置/继续进程.在这种情况下,它是通过串行端口连接到GPS.

c++ python qt

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

扁平QTreeView项目 - 不嵌套

有没有人知道是否可以展平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 是根项目.

qt pyqt

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

EF ObjectContext,Service and Repository - 管理上下文生命周期.

我对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# entity-framework dependency-injection

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