是否可以在c#中为对象添加属性
本文关键字:对象 添加 属性 是否 | 更新日期: 2023-09-27 17:58:49
我有以下函数
public static void UpdateWithStoredProcedure<T>(string storedProcedure, T entity)
{
var command = PrepareCommand(CommandType.StoredProcedure);
command.CommandText = storedProcedure;
AddObjectPropertiesAsParametersToCommand(command, entity);
command.ExecuteNonQuery();
}
我这样称呼它
UpdateWithStoredProcedure(DeleteDocumentStyleProcedure, new KeyValuePair<string, object>("Id", DocumentStyle.DocumentId));
有没有办法传递两个参数。两个KeyValuePair实例?我尝试传递一个列表和字典,但AddObjectPropertiesAsParametersToCommand的代码也映射了这个类的内部属性,如Count。
为什么不更改函数以遍历实体:
public static void UpdateWithStoredProcedure<T>(string storedProcedure, params T[] entities)
{
var command = PrepareCommand(CommandType.StoredProcedure);
command.CommandText = storedProcedure;
foreach(T entity in entities)
AddObjectPropertiesAsParametersToCommand(command, entity);
command.ExecuteNonQuery();
}
最后,我声明了一个新的内部类,该类只包含我需要的属性,并将其实例传递给AddObjectPropertiesAsParametersToCommand
函数。
class UpdateLogoParameters
{
public byte[] Logo{get;set;}
public int DocumentId{get;set;}
public UpdateLogoParameters(byte[] logo, int documentId)
{
Logo = logo;
DocumentId = documentId;
}
}