0

私は今ほとんどの知識を得たと思いますが、残念ながら、ほとんどがSQL Connectionsで作業していて、エンティティFrameworkを使用しているため、実際に役立つチュートリアルが見つかりません。

これまでのところ、Farveという名前のCSLABusinessクラスとFarbeListeという名前のCSLABusinessリストクラスを作成しました。xamlには、モデルを一覧表示するグリッドビューがあります。しかし、今はデータを取得する方法がわかりませんが、私はかなり近いと確信しています。簡単な例を教えてください。チュートリアルは投稿しないでください。私は今彼らを最もよく知っていると思います、そして彼らはまだ助けにはなりません。

ここに私のcslaクラス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

    }
}

今私のCLSAリストクラス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)
{

  


}
4

1 に答える 1

0

FarbeViewModelのコンストラクターのこの行

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

そしてこれはFarbListeCSLABusinessListクラスにあります

    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;


    }

そして最後にこれをビジネスクラス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

于 2013-03-25T12:15:06.333 に答える