这是我的自定义类的一个示例。
public class Application
{
public string App_Name { get; set; }
public string App_Number { get; set; }
public string Sever_Name { get; set; }
}
我正在使用Enterprise Library Data Block中的ExecuteNonquery来调用我的存储过程。
我正在寻找一种方法,可能使用linq,将Application类型的对象转换为Object [],可以将其传递给ExecuteNoneQuery,如下所示。
Database.ExecuteNonQuery Method (String, Object[])
这是我希望能够做到的一个例子,但是在此之前需要进行应用程序的转换。
internal void Update(Application application)
{
int returnValue = 0;
string sql = "somsesproc";
DatabaseFactory.CreateDatabase("AppsConnectionString").ExecuteNonQuery(somsesproc, application);
}
答案 0 :(得分:4)
目前还不清楚您是否希望对象数组中的Application
对象本身:
object[] oa = new object[] {application};
或者如果您希望属性拆分为数组:
object[] oa = new object[] {application.App_Name,
application.App_Number,
application.Sever_Name};
答案 1 :(得分:2)
您可以使用反射将所有属性值去除到任意对象的数组中:
public static object[] StripPropertyValues<T>(T obj)
{
return typeof(T).GetProperties(BindingFlags.Public |
BindingFlags.Instance)
.Select(prop => prop.GetValue(obj))
.ToArray();
}
因此允许你写:
DatabaseFactory.CreateDatabase("AppsConnectionString")
.ExecuteNonQuery(somsesproc, StripPropertyValues(application));
答案 2 :(得分:1)
.ExecuteNonQuery(somsesproc, new Object[] {application});