0
使用時,我有我想從,我所有的DAO對象繼承基類型沒有發現F#成員,但該成員獲得誤差進一步下降約沒有被定義爲:爲什麼在子類
type BaseDAO() =
member v.ExecNonQuery2(conn)(sqlStr) =
let comm = new MySqlCommand(sqlStr, conn, CommandTimeout = 10)
comm.ExecuteNonQuery |> ignore
comm.Dispose |> ignore
我這種類型的繼承:
type CreateDatabase() =
inherit BaseDAO()
member private self.createDatabase(conn) =
self.ExecNonQuery2 conn "DROP DATABASE IF EXISTS restaurant"
這是我看到的時候我的腳本在交互式shell中運行:
--> Referenced 'C:\Program Files\MySQL\MySQL Connector Net 6.2.3\Assemblies\MySql.Data.dll'
[Loading C:\Users\jblack\Documents\Visual Studio 2010\Projects\RestaurantService\RestaurantDAO\BaseDAO.fs]
namespace FSI_0106.RestaurantServiceDAO
type BaseDAO =
class
new : unit -> BaseDAO
member
ExecNonQuery2 : conn:MySql.Data.MySqlClient.MySqlConnection ->
sqlStr:string -> unit
member execNonQuery : sqlStr:string -> unit
member
execQuery : sqlStr:string *
selectFunc:(MySql.Data.MySqlClient.MySqlDataReader ->
'a list) -> 'a list
member f : x:obj -> string
member Conn : MySql.Data.MySqlClient.MySqlConnection
end
[Loading C:\Users\jblack\Documents\Visual Studio 2010\Projects\RestaurantService\RestaurantDAO\CreateDatabase.fs]
C:\Users\jblack\Documents\Visual Studio 2010\Projects\RestaurantService\RestaurantDAO\CreateDatabase.fs(56,14): error FS0039: The field, constructor or member 'ExecNonQuery2' is not defined
我很好奇我做錯了什麼。
我試過不繼承,只是在函數中實例化BaseDAO
類型,但我得到了同樣的錯誤。
我開始在這條路上,因爲我有一個屬性有相同的錯誤,所以它似乎可能有一個問題,我如何定義我的BaseDAO
類型,但它編譯沒有錯誤,這進一步混淆了我對此問題。
我沒想過重置fsi會話。這似乎是訣竅。謝謝。 – 2010-05-16 05:20:57