У меня периодически возникали проблемы с доступом к данным, поэтому я перестраиваю свой проект. У меня есть 3-уровневая архитектура, использующая Linq to Entities с моей папкой App_Data с моей базой данных в слое DATA (DL). Единственная строка подключения к данным находится в слое данных (DL) web.config.
Я получаю сообщение об ошибке в своем пользовательском интерфейсе в операторе 'var GetFeatured' , в котором говорится, что "тип" DL.RESTAURANT "определен в сборке, на которую нет ссылок. Вы должны добавить ссылка на сборку "DL." У меня есть ссылка в пользовательском интерфейсе на уровень бизнес-логики, а уровень бизнес-логики имеет ссылку на DL. Чего мне не хватает?
КОД ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
BLgetFeatured obj2 = new BLgetFeatured();
int one = 29;
int two = 54;
int three = 49;
int four = 41;
int restID = one;
var GetFeatured = obj2.getFeatured(restID);
var GetFeatured = obj2.getFeatured(restID);
litRestName.Text = GetFeatured[0].REST_NAME;
litRestStreet.Text = GetFeatured[0].REST_STREET1;
litRestPhone.Text = GetFeatured[0].REST_PHONE;
litRestCity.Text = GetFeatured[0].CITY.CITY_NAME;
litRestCuisine.Text = GetFeatured[0].CUISINE.CUISINE_NAME;
litRestShortDesc.Text = GetFeatured[0].REST_DESC;
restImage.ImageUrl = "~/Images/" + GetFeatured[0].REST_IMAGE;
СЛОЙ БИЗНЕС ЛОГИКИ
using DL;
namespace BL
{
public class BLgetRestaurants
{
public List<RESTAURANT> getRestaurants(string cuisineName, string cityName, string priceName, string ratingName)
{
DLgetRestaurants obj = new DLgetRestaurants();
var restaurantList = obj.getRestaurants(cuisineName, cityName, priceName, ratingName);
return restaurantList;
}
}
}
Уровень данных (DL)
namespace DL
{
public class DLgetFeatured
{
FCGuide db = new FCGuide();
public List<RESTAURANT> getFeatured(int restID)
{
var restList = (from RESTAURANT in db.RESTAURANTs.Include("CUISINE").Include("CITY")
where RESTAURANT.REST_ID == restID
select RESTAURANT).ToList();
var result = (from RESTAURANT in db.RESTAURANTs.Include("CITY").Include("CUISINE")
where RESTAURANT.CUISINE.CUISINE_ID == RESTAURANT.CUISINE_ID
&& RESTAURANT.CITY.CITY_ID == RESTAURANT.CITY_ID
orderby RESTAURANT.REST_NAME ascending
select RESTAURANT).ToList();
return restList;
}
}
}