2012-04-17 45 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

相關問題