C# 用于准备SQL表创建的值和类型处理的最佳方法
我有一个类,它表示将在sql数据库中创建的动态表C# 用于准备SQL表创建的值和类型处理的最佳方法,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我有一个类,它表示将在sql数据库中创建的动态表 public class DynamicTable { public List<DynamicField> fieldNames { get; set; } } 我担心的是,您可以传递任何您想要的类型,但我只需要一些特定的数据类型,如String、int、date、float 我如何改进我的代码,只有通过它们才有可能? 基于使用属性类型在我的sql数据库中正确创建表的想法,有没有比使用System.type类型更好的方法
public class DynamicTable
{
public List<DynamicField> fieldNames { get; set; }
}
我担心的是,您可以传递任何您想要的类型,但我只需要一些特定的数据类型,如String、int、date、float
我如何改进我的代码,只有通过它们才有可能?
基于使用属性类型在我的sql数据库中正确创建表的想法,有没有比使用System.type类型更好的方法?我想您可以使用Generic设置一个约束,如下所示。但我也猜它在您的动态场景中将非常不可用,并且它不接受可为null的类型
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>());
也许您可以在类型设置程序中检查value.IsValueType是否为true,如果为false,则抛出异常
希望这会有所帮助,如果我要创建DynamicField类的实例,我将如何设置类型?@Zteve:更新了我的代码,以便提供一些流畅的示例。除此之外,动态场景将出现在switch/if语句中,这使我说它在您的场景中非常不可用,只是转移了问题。
var t = new DynamicTable();
t.Add(new DynamicField("ColumnA").SetFieldType<String>());