3 Mayıs 2011, Salı
Veritabanı tablosundan sınıf oluşturmak
Nasıl SQL Server bir tablodan bir sınıf oluşturabilir miyim?
Bazı ORM kullanarak bahsetmiyorum. Ben sadece varlıkları (basit sınıfı) oluşturmanız gerekir. Gibi bir şey
public class Person
{
public string Name { get;set; }
public string Phone { get;set; }
}
CEVAP
3 Mayıs 2011, Salı
@Tablonun adı TableName Set.
declare @TableName sysname = 'TableName'
declare @Result varchar(max) = 'public class ' @TableName '
{'
select @Result = @Result '
public ' ColumnType NullableSign ' ' ColumnName ' { get; set; }
'
from
(
select
replace(col.name, ' ', '_') ColumnName,
column_id ColumnId,
case typ.name
when 'bigint' then 'long'
when 'binary' then 'byte[]'
when 'bit' then 'bool'
when 'char' then 'string'
when 'date' then 'DateTime'
when 'datetime' then 'DateTime'
when 'datetime2' then 'DateTime'
when 'datetimeoffset' then 'DateTimeOffset'
when 'decimal' then 'decimal'
when 'float' then 'float'
when 'image' then 'byte[]'
when 'int' then 'int'
when 'money' then 'decimal'
when 'nchar' then 'char'
when 'ntext' then 'string'
when 'numeric' then 'decimal'
when 'nvarchar' then 'string'
when 'real' then 'double'
when 'smalldatetime' then 'DateTime'
when 'smallint' then 'short'
when 'smallmoney' then 'decimal'
when 'text' then 'string'
when 'time' then 'TimeSpan'
when 'timestamp' then 'DateTime'
when 'tinyint' then 'byte'
when 'uniqueidentifier' then 'Guid'
when 'varbinary' then 'byte[]'
when 'varchar' then 'string'
else 'UNKNOWN_' typ.name
end ColumnType,
case
when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier')
then '?'
else ''
end NullableSign
from sys.columns col
join sys.types typ on
col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
where object_id = object_id(@TableName)
) t
order by ColumnId
set @Result = @Result '
}'
print @Result
Bunu Paylaş:
Nasıl JavaScript ile dinamik olarak CS...
SQL Server veritabanı dosyası oluşturm...
Nasıl bir sınıf nesnesi için özel bir ...
Daha iyi bir şekilde jquery ile nesne ...
Nasıl bir SQL Server CE (Compact Editi...