2013-03-25 46 views
0

好吧,我想我现在已经掌握了大部分知识,但是很遗憾我找不到任何可以acutal帮助我的教程,因为大多数教程都是使用SQL Connections和即时通讯使用实体框架。 到目前为止,我创建了一个名为Farve的CSLA Business类和一个名为FarbeListe的CSLA Business List类。在我的xaml中,我有一个网格视图,其中列出了模型。但我现在不知道如何获取数据,但我很确定我很接近。请帮助我一个简单的例子,不要发布任何教程,我认为我现在最了解他们,他们仍然没有帮助。数据库Accsess WPF MVVM的最后一步

这里我的里昂证券类FARBE

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Csla; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using MusterConnectionDB.Datenbank; 

namespace MusterConnectionDB.Business 
{ 
    [Serializable] 
    public class Farbe : Csla.BusinessBase<Farbe> 
    { 

     TestDBEntities db = new TestDBEntities(); 

     public Farbe() 
     { 
      BusinessRules.AddRule(new Csla.Rules.CommonRules.Required(FarbauswahlNrProperty)); 
      BusinessRules.AddRule(new Csla.Rules.CommonRules.MinValue<int>(FarbauswahlNrProperty, 3)); 


     } 

     #region Properties 

     public static readonly PropertyInfo<int> FarbauswahlNrProperty = RegisterProperty<int>(c => c.FarbauswahlNr); 
     public int FarbauswahlNr 
     { 
      get { return GetProperty(FarbauswahlNrProperty); } 
      set 
      { 

       SetProperty(FarbauswahlNrProperty, value); 
      } 
     } 


     public static readonly PropertyInfo<string> KurztextProperty = RegisterProperty<string>(c => c.Kurztext); 
     public string Kurztext 
     { 
      get { return GetProperty(KurztextProperty); } 
      set { SetProperty(KurztextProperty, value); } 
     } 

     public static readonly PropertyInfo<string> RessourceProperty = RegisterProperty<string>(c => c.Ressource); 
     public string Ressource 
     { 
      get { return GetProperty(RessourceProperty); } 
      set { SetProperty(RessourceProperty, value); } 
     } 

     public static readonly PropertyInfo<bool> Vari1Property = RegisterProperty<bool>(c => c.Vari1); 
     public bool Vari1 
     { 
      get { return GetProperty(Vari1Property); } 
      set { SetProperty(Vari1Property, value); } 
     } 

     public static readonly PropertyInfo<string> Vari2Property = RegisterProperty<string>(c => c.Vari2); 
     public string Vari2 
     { 
      get { return GetProperty(Vari2Property); } 
      set { SetProperty(Vari2Property, value); } 
     } 

     #endregion 

     #region Synchronous Factory Methods 

     public class DataEventArgs : EventArgs 
     { 
      public DataEventArgs(Farbe data) 
      { 
       this.Data = data; 
      } 

      public Farbe Data { get; set; } 
     } 

     internal static Farbe New() 
     { 
      return DataPortal.CreateChild<Farbe>(); 
     } 


     internal static Farbe Get(Farbe data) 
     { 
      if (data == null) 
       return null; 

      return DataPortal.FetchChild<Farbe>(data); 
     } 


     #endregion 

     #region DataProtal Methods 




     private void Child_Update() 
     { 
      using (var ctx = Csla.Data.ObjectContextManager<TestDBEntities>.GetManager(EntitiesDatabase.Name)) 
      { 
       var data = ctx.ObjectContext.Farben.SingleOrDefault(e => e.FarbauswahlNr == this.FarbauswahlNr); 

       data.Kurztext = ReadProperty<string>(KurztextProperty); 
       data.Ressource = ReadProperty<string>(RessourceProperty); 
       data.Var1 = ReadProperty<bool>(Vari1Property); 
       data.Vari2 = ReadProperty<string>(Vari2Property); 
       ctx.ObjectContext.SaveChanges(); 

      } 
     } 

     private void Child_Insert() 
     { 
      using (var ctx = Csla.Data.ObjectContextManager<TestDBEntities>.GetManager(EntitiesDatabase.Name)) 
      { 

       try 
       { 
        var data = new Datenbank.Farbe(); 
        data.Kurztext = ReadProperty<string>(KurztextProperty); 
        data.Ressource = ReadProperty<string>(RessourceProperty); 
        data.Var1 = ReadProperty<bool>(Vari1Property); 
        data.Vari2 = ReadProperty<string>(Vari2Property); 
        ctx.ObjectContext.Farben.AddObject(data); 
        ctx.ObjectContext.SaveChanges(); 
       } 
       catch (Exception e) 
       { 

        MessageBox.Show(e.ToString()); 
       } 


      } 
     } 

     private void Child_Delete() 
     { 

      using (var ctx = Csla.Data.ObjectContextManager<TestDBEntities>.GetManager(EntitiesDatabase.Name)) 
      { 
       try 
       { 
        var data = ctx.ObjectContext.Farben.SingleOrDefault(e => e.FarbauswahlNr == this.FarbauswahlNr); 
        ctx.ObjectContext.Farben.DeleteObject(data); 
        ctx.ObjectContext.SaveChanges(); 
       } 
       catch (Exception e) 
       { 
        MessageBox.Show(e.ToString()); 

       } 
      } 
     } 



     #endregion 

    } 
} 

现在我的里昂证券名单克拉斯FarbeListe

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Csla; 
using MusterConnectionDB.Business; 

namespace MusterConnectionDB.Business 
{ 
    public class FarbeListe : Csla.BusinessListBase<FarbeListe, Farbe> 
    { 
     public FarbeListe() 
     { 

     } 


     protected override void Child_Create() 
     { 
      base.Child_Create(); 
     } 

     private void Child_Fetch(IEnumerable<Farbe> data) 
     { 

      RaiseListChangedEvents = false; 

      foreach (var item in data) 
      { 
       this.Add(Farbe.Get(item)); 

      } 

      RaiseListChangedEvents = true; 
     } 

     internal static FarbeListe Get(IEnumerable<Farbe> data) 
     { 
      if (data == null) 
       return null; 

      return DataPortal.FetchChild<FarbeListe>(data); 
     } 

     internal static FarbeListe New() 
     { 
      return DataPortal.CreateChild<FarbeListe>(); 
     } 

     internal static FarbeListe GetAll() 
     { 

      return DataPortal.Fetch<FarbeListe>(); 
     } 
    } 

} 

现在把我们的代码请成方法至极是模型类FarbeViewModel。我只需要获取属性模型的数据。

public void ExecuteAktu(object obj) 
{ 




} 
+0

@WiiMaxx嗯,我想,这是由于他正在使用的CSLA。但我不确定。哦,请用英文写。这对非德语用户是不公平的。 ; o) – DHN 2013-03-25 07:51:16

+0

@DHN我刚刚用他的nativ语言回答了他的问题:o)并且他说_put我们的代码请进入那个方法,这是模型类FarbeViewModel_这对我意味着他有一个单独的模型 – WiiMaxx 2013-03-25 07:54:27

+0

@WiiMaxx好吧,因为我们不是'一个人'在这里,这仍然是不公平的,因为没有人能够参与讨论。 ; o) – DHN 2013-03-25 07:56:42

回答

0

此行FarbeViewModel

Model = MusterConnectionDB.Business.FarbeListe.GetAll(); 

的构造函数,这在FarbListe CSLA的businessList类

private void DataPortal_Fetch() 
    { 
     using (var ctx = Csla.Data.ObjectContextManager<Datenbank.TestDBEntities>.GetManager(EntitiesDatabase.Name)) 
      ReadData(ctx.ObjectContext.Farben); 
    } 

    private void ReadData(IEnumerable<Datenbank.Farbe> data) 
    { 
     // Partial Method BeforeReadData 


     RaiseListChangedEvents = false; 

     foreach (var item in data) 
      this.Add(Farbe.Get(item)); 
     RaiseListChangedEvents = true; 


    } 

和finaly这在商务舱FARBE

internal static Farbe Get(Datenbank.Farbe data) 
    { 
     try 
     { 
      if (data == null) 
       return null; 

      return DataPortal.FetchChild<Farbe>(data); 
     } 
     catch (System.Exception e) 
     { 
      MessageBox.Show(e.ToString()); 
     } 
     return null; 

    } 

    private void Child_Fetch(Datenbank.Farbe data) 
    { 

     LoadProperty(FarbauswahlNrProperty, data.FarbauswahlNr); 
     LoadProperty(KurztextProperty, data.Kurztext); 
     LoadProperty(RessourceProperty, data.Ressource); 
     LoadProperty(Vari1Property, data.Var1); 
     LoadProperty(Vari2Property, data.Vari2); 

    } 

这就是我如何从我的数据库中读取数据.... -.-' 简单的权利? :D