ASP.Net Linq to Entities: строка подключения Web Config при использовании 3-уровневой архитектуры - PullRequest
0 голосов
/ 10 декабря 2011

У меня периодически возникали проблемы с доступом к данным, поэтому я перестраиваю свой проект. У меня есть 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;
    }
  }
}

1 Ответ

0 голосов
/ 10 декабря 2011

Добавьте ссылку на DL в ваш проект пользовательского интерфейса.Поскольку вы используете этот тип в проекте пользовательского интерфейса, вам нужна ссылка на него.

...