2012-04-17 83 views
-2

我最后一个问题被关闭,因为它被解释为“宽泛和模糊”,所以我会尝试清除事情。NHibernate自定义MsSql2008Dialect驱动程序

我需要创建一个自定义驱动程序NHibernate做一些东西(不重要的职位),但我不知道从哪里开始。 我有我在互联网上看到了一个代码,但我不知道如何去完成它:

public class teste : NHibernate.Driver.ReflectionBasedDriver 
{ 
    public teste() 
     :base() 
    { 

    } 

我的问题是在:基础()的一部分,我不知道我需要把那里 !

感谢

P.S->看在上帝的份上,这不是一个重复的职位,因为最后一个被关闭!

+1

你能定义一些东西吗? – Rippo 2012-04-17 17:08:59

+0

您应该先看其他驱动程序。这就是开源的目的。 – 2012-04-17 21:43:16

回答

1

这个问题注定是因为“我想做的事”并不能真正帮助我们。如果NHibernate需要一个程序集,但需要使用另一个程序集,则可以使用ReflectionBasedDriver。

例如,如果我想使用单声道源码(例如NHibernate预计SQLite.NET),那么我会用: -

public MyClass() : base("Mono.Data.Sqlite", 
     "Mono.Data.Sqlite.SqliteConnection", "Mono.Data.Sqlite.SqliteCommand") 
    { 

    public override bool UseNamedPrefixInSql 
    { 
     get { return true; } 
    } 

    public override bool UseNamedPrefixInParameter 
    { 
     get { return true; } 
    } 

    public override string NamedPrefix 
    { 
     get { return "@"; } 
    } 
} 

我强烈怀疑你是在实际上在此之后:

public class MyDialect : NHibernate.Dialect.MsSql2008Dialect 
{ 
} 

由于自定义方言允许您指定自己的配置。

+0

非常感谢Rippo。不,我不能使用方言,因为我想做的事不能通过Dialect完成(拦截LINQ调用,更改sql代码)。你认为它会和linq一起工作吗?谢谢 ! – Leonardo 2012-04-17 17:52:57

+0

拦截应该通过拦截器完成NOT ReflectionBasedDriver – Rippo 2012-04-18 07:42:47

+1

顺便说一句你已经有了这个答案。 http://stackoverflow.com/questions/9933002/dialect-driver-every-select-i-perform-add-withnolock – Rippo 2012-04-18 07:45:23

相关问题