私はこのアーキテクチャを持っています:
------(WPF APPLICATION)(XAML,ViewModels) (ビジネス ロジックは知っているが DAL は知らない)
------(クラス ライブラリ)(ビジネス ロジック) (DAL を知っている)
------(クラス ライブラリ)(DAL - エンティティ フレームワーク (モデル ファースト))(誰も参照しない)
ここでの私の問題は、私のDALがビジネスロジッククラスを認識していないため、たとえばPersonのリストを取得すると、DALでIEnumerableを返すことです。例えば:
public static IEnumerable GetPersons()
{
using(StaffEntities context = new StaffEntities())
{
return context.Persons.ToList();
}
}
したがって、ビジネスロジック層から結果を取得すると、すべてのエンティティに相当するクラスがあり、DAL の Person エンティティに対して、ビジネスロジック層に clsPerson があります。しかし、私のビューモデルはDALを認識していないため、ビジネスロジッククラスのみを認識しているため、clsPersonなので、ビジネスロジックのコードは次のようになります
例えば:
public static IEnumerable GetclsPersons()
{ return DAL.GetPersons(); }
私の大きな問題は、何かのリストを取得するたびに、何かを保存または削除するたびに、ViewModel でリフレクションを使用する必要があることです。
したがって、xaml にバインドされた clsPerson プロパティがある場合:
public IEnumerable clsPersons { get; set; }
public ListCollectionView clsPersonList { get; set; }
clsPersons = BLL.GetclsPersons();
clsPersonList = new ListCollectionView((IList)clsPersons);
public clsPerson CurrentclsPerson { get; set; }
「CurrentclsPerson」に値を割り当てるたびに、リフレクションを使用する必要があります
CurrentclsPerson.Firstname = clsPersonList.CurrentItem.GetType().GetProperty("Firstname")
.GetValue(clsPersonList.CurrentItem,null).ToString();
ビューモデルでリフレクションを使用しないことを望んでいました。IEnumerable を使用する必要がないように、ビジネス ロジックと DAL を 1 つのクラス ライブラリに配置することを考えていました。
皆さんは何を使っていますか?
とにかくこれを回避する方法はありますか?
とにかくこのあたりはありますか?
助けてください..ありがとう。