[英]Best way for value and type handling for preparing SQL Table Creation
我有一個類,它表示將在sql數據庫中創建的動態表。
public class DynamicTable
{
public List<DynamicField> fieldNames { get; set; }
}
DynamicField代表一對字段名稱及其dataType:
public class DynamicField
{
public Type type {get;set;}
public String fieldName {get;set;}
public DynamicField(String fieldName, Type datatype)
{
this.fieldName = fieldName;
this.type = datatype;
}
}
我擔心的是,您可以傳遞任何想要的Type,但是我只需要一些特定的數據類型,例如String,int,date,float。
我如何才能改善我的代碼,使其只能通過它們? 基於使用屬性類型在sql數據庫中正確創建表的想法,是否有比使用System.Type類型更好的方法?
我想您可以對Generic施加約束,如下所示。 但我也猜想它在您的動態場景中將非常不可用(並且它將不接受可為空的類型)
public class DynamicField
{
public String fieldName { get; set; }
private Type _type;
public DynamicField SetFieldType<T>() where T:struct
{
this._type = typeof(T);
return this;
}
public Type GetFieldType()
{
return this._type;
}
public DynamicField(String fieldName)
{
this.fieldName = fieldName;
}
}
然后,您可以編寫如下內容:
var t = new DynamicTable();
t.Add(new DynamicField("ColumnA").SetFieldType<String>());
也許您可以只檢查type
設置器中的value.IsValueType
為true,如果為false則拋出異常。
希望這會有所幫助,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.