2015-01-02 9 views
0

С Новым годом всех. Хорошо, я пытаюсь создать трехуровневое приложение, и у меня есть ссылки в следующем порядке: UI -> BLL -> DAL. Вопрос в том. У меня проблема с Dbset. Поскольку у меня нет ссылки на мои модели в моем DAL, dbset терпит неудачу.Ссылка на мои модели в DAL

namespace MyApp.DAL 
{ 
    public class MyAppDb : DbContext 
    { 
     public MyAppDb() : base("name=MyAppDBstring") 
     { } 

     public DbSet<SomeModel> SomeModels { get; set; } 
    } 
} 

Как я получить эту работу, если не может найти свой класс SomeModel в моем BLL? Любая помощь будет принята с благодарностью.

+0

Где ваши модели сидят? внутри DAL или BLL или в рамках другого проекта? – Matt

+0

Привет, извините. У меня есть три отдельных проекта. Веб/UI, BLL и DAL. Все мои модели сидят в моем BLL. Мой BLL ссылается на мой DAL, поэтому мой DAL не может «видеть» мои модели. Я довольно новичок в nTier-приложениях, поэтому я считаю это проблемой. Кстати, это все шаблон MVC. –

ответ

0

В этом случае вам нужно добавить ссылку на проект BLL в проект DAL. Щелкните правой кнопкой мыши ссылку> Добавить ссылку, а затем вкладку «Решение» отметьте свой проект BLL.

Из этого вы затем сможете поставить, используя заявление в верхней части класса над чем-то вдоль линий:

using MyApp.BLL; 
+0

Я не могу сделать это из-за того, что мой BLL имеет ссылку на мой DAL. Я получу круговую ошибку зависимости. –

+0

Ах, извините, я пропустил это в вашем вопросе. Вам лучше всего было бы взглянуть на реализацию интерфейса между вашим BLL и вашим DAL. Не изобретая колесо, очень хорошее объяснение этого: http://www.codeproject.com/Articles/616344/What-is-Circular-dependency-and-how-do-we-resolve – Matt

+0

Спасибо Matt. Похоже, путь. :) –