2011-03-03 70 views

回答

0

只要你使用的數據集,並不意味着代碼生成,因爲。那麼你究竟在使用/做什麼來生成代碼?

dataProvider並不意味着生成代碼。您可以直接訪問您的數據並使用數據自行填充數據集。

例如

#region GetPostsFeatured 

internal DbDataReader GetPostsFeatured() 
{ 
    using (var command = CreateCommandForGetPostsFeatured()) 
    { 
    DbConnection.Open(); 
    return command.ExecuteReader(CommandBehavior.CloseConnection); 
    } 
} 

internal DataSet GetPostsFeaturedDataSet() 
{ 
    var adapter = DbProviderFactory.CreateDataAdapter(); 
    adapter.SelectCommand = CreateCommandForGetPostsFeatured(); 
    var ds = new DataSet(); 
    adapter.Fill(ds); 
    return ds; 
} 

private DbCommand CreateCommandForGetPostsFeatured() 
{ 
    var command = DbConnection.CreateCommand(); 
    command.CommandType = CommandType.StoredProcedure; 
    command.CommandText = "GetPostsFeatured"; 
    var parameter = DbProviderFactory.CreateParameter(); 
    parameter.DbType = DbType.Int32; 
    parameter.Direction = ParameterDirection.ReturnValue; 
    parameter.ParameterName = "@RETURN"; 
    command.Parameters.Add(parameter); 
    return command; 
} 

#endregion GetPostsFeatured 

上面的代碼使用ADO.NET核心(這是我認爲你正在使用的爲好)。請注意,有兩種方法

  1. GetPostsFeatured() - 返回一個 DbDataReader
  2. GetPostsFeaturedDataSet() - 這 返回DataSet

公告的數據集是如何被填充了數據數據庫?

在這種情況下,我使用MS SQL數據提供者,但它可能是任何數據提供者。它們都支持一組通用功能。

,使用配置文件的ConnectionString的部分和實例的連接等的代碼如下所示

internal partial class DataModule 
    { 
    private DbProviderFactory DbProviderFactory { get; set; } 
    private DbConnection DbConnection { get; set; } 

    public DataModule() 
    { 
     var connectionStringSettings = ConfigurationManager.ConnectionStrings["Orion"]; 
     DbProviderFactory = DbProviderFactories.GetFactory(connectionStringSettings.ProviderName); 
     DbConnection = DbProviderFactory.CreateConnection(); 
     DbConnection.ConnectionString = connectionStringSettings.ConnectionString; 
    } 
    } 

我的博客上,有關於一個工具,我已經寫了直接從存儲生成代碼的文章程序(我在這裏展示的所有代碼都是生成的代碼)。該工具的源代碼也是可用的,所以你可以修改生成的代碼和你想要的任何東西。 Data Access Layer CodeGen

0

你可以寫partial類和功能性添加自己的功能,你喜歡

相關問題