2017-07-10 14 views
0

私は自分のEntity Frameworkクラスを作成するためのビジネスロジックを実装したいと思います。Entity Frameworkを使用してビジネスロジックを実装する方法は?

しかし、私はそうする方法を理解できませんでした。

これは私がこれまで何をやったかである:

を、私は以下の拡張子を持つ:

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; }   
} 

とIています

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; 
    } 
} 

は第二に、私は、Entity Frameworkのクラスを作成しました私が作成した部分クラス

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クラスを継承させることです。それ、どうやったら出来るの?これも可能ですか?

答えて

0

あなたはすべてのビジネスロジックを持っており、パラメータ

public class MyDomainService:IMyDomainService 
{ 
    public void MyFillAll(Admin_Panel adminPanel) 
    { 
     using (var lobo = new GymProEntities()) 
     {       
       _adminPanelArgs.ADMIN_PANEL = lobo.ADMIN_PANEL.ToList(); 
       OnOnFillCompleteHandler(_adminPanelArgs);       
     } 
    } 
} 

としての実体を渡すことができ、ドメイン層を作成することができます私はまた、DIフレームワークを使用してloboを注入示唆しています。

関連する問題