Hotel/Common/Data/SetParamsValues.cs
(完整代码) 1KBusing System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using Omu.ValueInjecter;
namespace Common.Data
{
public class SetParamsValues : KnownTargetValueInjection<SqlCommand>
{
private IEnumerable<string> ignoredFields = new string[] { };
private string prefix = string.Empty;
public SetParamsValues Prefix(string p)
{
prefix = p;
return this;
}
public SetParamsValues IgnoreFields(params string[] fields)
{
ignoredFields = fields.AsEnumerable();
return this;
}
protected override void Inject(object source, ref SqlCommand cmd)
{
if (source == null) return;
var sourceProps = source.GetInfos().ToList();
foreach (var prop in sourceProps)
{
if (prop.GetCustomAttributes(true).Length > 0)
{
int k = prop.GetCustomAttributes(true).OfType<DbFieldAttribute>()
.Count(dbFieldAttribute => !dbFieldAttribute.IsDbField);
if (k > 0)
continue;
}
if (ignoredFields.Contains(prop.Name.ToLower())) continue;
var value = prop.GetValue(source, null) ?? DBNull.Value;
cmd.Parameters.AddWithValue("@" + prefix + prop.Name, value);
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。