2011-03-03 57 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类和功能性添加自己的功能,你喜欢

相关问题