2011-02-28 154 views
0

在數據庫中,有一些字段是TimeStamp,有些字段是Date,這意味着某些字段接受日期和時間,一些字段僅接受日期。有沒有辦法指出DateTime對象只有Date值?

我想寫一個助手類,它可以通過iternate通過數據對象的屬性生成SQL,並通過屬性的數據類型生成適當的SQL。

所以說,表「SomeDateTimeTable」有時間戳字段「A_TimeStamp」和日期字段「A_Date」 後來我的數據對象有兩個屬性,「公衆的DateTime A_TimeStamp」和「公共的DateTime A_Date」。

但因爲C#不僅具有日期時間...我的程序不能區分的日期時間屬性表示數據庫中的字段是時間戳或日期....

我不知道是否有反正acheive呢?

我只能想到...要麼使有日期時間參數表明這是一個Date類型...或檢查的時間是00:00:00另一個階級......

但這兩種方式看起來......不那麼聰明?

+1

(假設您使用的是SQL Server)確保區分時間戳,日期時間和日期。 AFAIK,時間戳數據類型是不透明的:它是由服務器生成的,並不意味着被讀作日期數據。 – Humberto 2011-02-28 19:12:29

回答

2

在我看來,這更多地與模式相比,而不是具體的價值;即傾向於是所有日期與日期時間,通常不是一列中的單個單元格。

隨着該工作設想(這可能不適合您的方案),我可能會使用的元數據,例如(但不限於):

[DateOnly] 
public DateTime Foo {get;set;} 

... 

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, 
    AllowMultiple=false,Inherited=true)] 
public class DateOnlyAttribute : Attribute {} 

然後你可以使用Attribute.IsDefined(member, typeof(DateOnlyAttribute)),看它是否被設置per-會員。

+0

非常感謝,這是我想要做的。我現在學到一些東西,再次感謝! – King 2011-02-28 20:07:01

0

您可以使自己的類型(應該是不可變的)或使用屬性。

相關問題