0
我开始与SubSonic 3.0.0.3 - SimpleRepository交朋友。既然你/我必须创建每个对象类,所以我在下面做了一个简单的代码,只是为了节省一些时间。SubSonic 3.0.0.3 | SimpleRepository | DB DataType - 类DataType映射
我唯一的问题是,我的映射是否正确(DB DataType为.Net DataType)?
下面是简单的代码:
public string CreateClassEntity(string ConnectionSring, string TableName)
{
SqlDatabase db = new SqlDatabase(ConnectionSring);
string sqlCommand = "SELECT TOP 1 * FROM " + TableName + "";
DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
DataSet subsonicDataSet = db.ExecuteDataSet(dbCommand);
DataTable subsonicDataTable = subsonicDataSet.Tables[0].Clone();
string classEntity = "public class " + TableName + " \n{";
foreach(DataColumn column in subsonicDataTable.Columns)
{
classEntity += "\n\tpublic ";
classEntity += column.DataType.ToString().Replace("System.", string.Empty) + " ";
classEntity += column.ColumnName + " ";
classEntity += "{ get; set; }";
}
classEntity += "\n}";
return classEntity;
}
样品目标表(SQL 2008):
CREATE TABLE [kiss].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](20) NOT NULL,
[UserPassword] [varbinary](128) NULL,
[UserTypeID] [tinyint] NOT NULL,
[ByPassAccessRestrictionsFlag] [bit] NOT NULL,
[IsEnforcePasswordPolicy] [bit] NOT NULL,
[PasswordExpirationDate] [datetime] NULL,
[IsPwdChangeNextLogin] [bit] NOT NULL,
[ShowLatestNewsFlag] [bit] NOT NULL,
[SortRowNumber] [int] NOT NULL,
[CreatedDate] [datetime] NOT NULL,
[CreatedBy] [nvarchar](20) NOT NULL,
[UpdatedDate] [datetime] NOT NULL,
[UpdatedBy] [nvarchar](20) NOT NULL,
[DeletedDate] [int] NULL,
[EntityTypeID] [int] NOT NULL
)
样例类输出:
public class Users
{
public Int32 ID { get; set; }
public String UserName { get; set; }
public Byte[] UserPassword { get; set; }
public Byte UserTypeID { get; set; }
public Boolean ByPassAccessRestrictionsFlag { get; set; }
public Boolean IsEnforcePasswordPolicy { get; set; }
public DateTime PasswordExpirationDate { get; set; }
public Boolean IsPwdChangeNextLogin { get; set; }
public Boolean ShowLatestNewsFlag { get; set; }
public Int32 SortRowNumber { get; set; }
public DateTime CreatedDate { get; set; }
public String CreatedBy { get; set; }
public DateTime UpdatedDate { get; set; }
public String UpdatedBy { get; set; }
public Int32 DeletedDate { get; set; }
public Int32 EntityTypeID { get; set; }
}
它看起来像你试图复制由linq模板提供的代码生成。我不明白你为什么这样做? – 2009-07-28 08:18:24
首先,我不知道,这是存在于linq模板,因为我从来没有成功运行它,并与ActiveRecords相同(拖动那些.TT文件)=(。这就是为什么我最终在SimpleRepository和强制手动创建一个类对象如果你可以帮我运行Linq模板和ActiveRecords,这将是很酷的 – 2009-07-28 08:52:44
你有没有看过使用ActiveRecord的5分钟介绍http://subsonicproject.com/docs/The_5_Minute_Demo – 2009-07-28 09:18:52