Bildiğiniz üzere c# %100 nesne yönelimli bir programlama dili.haliyle herşey bir nesneden ibaret.programlama yaparken nesnesel bir yapı kullandığımızdan dolayı çoğu kez veritabanındaki tablolara karşılık gelen classlar oluşturmamız gerekir.Bir takipçimin isteği üzerine hazırlamış olduğum aşağıdaki t-sql kod bloğu sayesinde parametre olarak verdiğiniz tablo adına ait kolonları sizlere field olarak getirebilmektedir.
CREATE FUNCTION [dbo].[CLASS_Olustur](@TabloAdi AS NVARCHAR(50)) RETURNS @DonusTablo TABLE(Name NVARCHAR(50))
AS BEGIN
INSERT INTO @DonusTablo(Name)
SELECT * FROM (
SELECT 'Public '+CASE
WHEN TipAd='nvarchar' then 'string'
WHEN TipAd='char' then 'char'
WHEN TipAd='nchar' then 'char'
WHEN TipAd='varchar' then 'string'
WHEN TipAd='sysname' then 'string'
WHEN TipAd='xml' then 'string'
WHEN TipAd='image' then 'string'
WHEN TipAd='date' then 'DateTime'
WHEN TipAd='datetime' then 'DateTime'
WHEN TipAd='smalldatetime' then 'DateTime'
WHEN TipAd='tinyint' then 'bool'
WHEN TipAd='smallint' then 'bool'
WHEN TipAd='real' then 'decimal'
WHEN TipAd='money' then 'decimal'
WHEN TipAd='float' then 'decimal'
WHEN TipAd='bit' then 'bool'
WHEN TipAd='text' then 'string'
WHEN TipAd='int' then 'int'
WHEN TipAd='bigint' then 'UInt64'
WHEN TipAd='decimal' then 'decimal'
END +' '+KolonAd+';' AS Degisken
FROM(SELECT col.name AS KolonAd,tip.name AS TipAd FROM sys.all_columns AS col
INNER JOIN sys.tables AS tp ON
col.object_id=tp.object_id AND tp.name=@TabloAdi
INNER JOIN sys.types AS tip ON
col.user_type_id=tip.user_type_id) AS VW1) AS VW2
RETURN END
GO
Paylaşımlarınızda lütfen kaynak belirtiniz.Emeğe Saygı.....
Kolay Gelsin.
Hiç yorum yok:
Yorum Gönder