Используя простой пример:
- Уровень представления: aspx и код позади.
- Бизнес-уровень: WCF с
связанные логики
- Уровень доступа к данным: WCF с структурой сущностей
Когда я хочу заполнить сетку, необходимо вызвать метод из бизнес-логики, который в свою очередь вызывает метод уровня доступа к данным.
Методы и связанная логика следующие.
Уровень доступа к данным:
public SampleEntity[] LoadSampleEntity()
{
//retrieve SampleEntity from database.
}
Уровень бизнес-логики:
public SampleEntity[] GetSampleEntity()
{
//call the proxy to access Data Access Tier
//Call LoadSampleEntity()
}
Уровень представления:
protected void btn_OnClick()
{
//call the proxy to access Business Logic Tier
//Call GetSampleEntity()
//SampleEntity[] sampleEntity=BusinessLogic.GetSampleEntity();
//gridview.datasouce = sampleEntity
//gridview.databind();
}
Учитывая эту структуру, если SampleEntity был изменен, все 3 уровня потребуют перекомпиляции.
Есть ли способ уменьшить необходимость повторной компиляции при добавлении нового свойства / столбца в SampleEntity.
Один из способов, над которым я работал, - это преобразование SampleEntity [] в тип данных с данными на уровне бизнес-логики и передача данных на уровень презентации. Однако при этом удаляется функция Intellisense EntityFramework на уровне презентации.