0

この質問が何度も聞かれることは知っていますが、必要なものを明確に把握することはできませんでした。

3層アプローチを使用してやり直す必要があるWPFアプリケーションがあります。

Entity Frameworkを使用してデータモデルを作成し、Linqクエリを使用してデータをクエリしました。

objCustomer = dbContext.Customers.Where(c => c.CustCode == oLoadDtl.CustNo).First();

データベースからレコードを取得するために、プログラムで必要な場所でLinqクエリを使用します。

だから、私はすべてのものがDAL、ビジネスロジック、UIレイヤーの下にあるのか知りたいだけです。

また、どうすればそれらを分離できますか?

エンティティデータモデルをDALと見なすことができますか?

エンティティモデルを別のクラスライブラリに配置することをお勧めしますか?

4

1 に答える 1

1

EntityFramework-invokesをカプセル化するには、DataAccessという特別なクラスを作成することをお勧めします。ビジネスロジックの場合、モデルクラスを作成でき、必要に応じてDALを使用します。その他の詳細は、アプリケーションが何をすべきかによって異なります。例えば:

//DAL
public class DataAccess
{
    public static void GetCustomerByNumber(int number)
    {
        var objCustomer = dbContext.Customers.Where(c => c.CustCode == number).First();
        return objCustomer;
    }
}

//Models
public class Customer
{
    public string Name { get; set; }
    public int Number { get; set; }

    public Customer GetCustomerByNumber(int number) 
    {
       return DataAccess.GetCustomerByNumber(number);
    }

    public void ChangeProfile(ProfileInfo profile)
    {
       //...
    }
}

主なものは、ソリューションの拡張性、再利用性、効率性です。

于 2012-08-01T10:49:04.783 に答える