【发布时间】:2017-07-11 12:43:28
【问题描述】:
我想为我的实体框架创建的类实现业务逻辑。
但我不知道该怎么做。
这是我到目前为止所做的:
我有以下扩展:
public static class PropertyExtension
{
public static void SetPropertyValue(this object obj, string propName, object value)
{
obj.GetType().GetProperty(propName).SetValue(obj, value, null);
}
public static object GetPropValue(this object obj, string propertyName)
{
var property = obj.GetType().GetRuntimeProperties().FirstOrDefault(p => string.Equals(p.Name, propertyName, StringComparison.OrdinalIgnoreCase));
return property != null ? property.GetValue(obj) : null;
}
}
其次,我有实体框架创建的类:
public partial class ADMIN_PANEL
{
public int AP_REFNO { get; set; }
public string AP_NAME { get; set; }
public string AP_PASSWORD { get; set; }
public Nullable<System.DateTime> AP_LAST_LOGIN { get; set; }
public Nullable<System.DateTime> AP_UPDATEDATE { get; set; }
}
我已经创建了部分类
public bool isEmpty { get { return count == 0; } }
public int count { get { return _adminPanelArgs.count; } }
//END PROPERTIES
#region Constructors
public ADMIN_PANEL()
{
OnFillCompleteHandler += ADMIN_PANELBO_OnFillCompleteHandler;
}
#endregion
void ADMIN_PANELBO_OnFillCompleteHandler(object sender, OnFillArgs e)
{
foreach (var propertyInfo in e.ADMIN_PANEL[0].GetType().GetProperties().Where(x => x.CanWrite == true))
{
this.SetPropertyValue(propertyInfo.Name, e.ADMIN_PANEL.First().GetPropValue(propertyInfo.Name));
}
}
public void MyFillAll()
{
using (var lobo = new GymProEntities())
{
_adminPanelArgs.ADMIN_PANEL = lobo.ADMIN_PANEL.ToList();
OnOnFillCompleteHandler(_adminPanelArgs);
}
}
}
请忽略任何未经批准的方法,我只是想说明我的观点。
我想做的是:拥有另一个BusinessLayer 类,将MyFillAll 方法移入其中,并使我的ADMIN_PANEL.cs 类继承自它。我怎么做?这甚至可能吗?
【问题讨论】:
标签: c# entity-framework generics