【问题标题】:Referencing my Models in DAL在 DAL 中引用我的模型
【发布时间】:2015-02-28 15:44:10
【问题描述】:

大家新年快乐。好的,我正在尝试创建一个 3 层应用程序,并且我的引用按以下顺序 UI -> BLL -> DAL。问题是。我遇到的问题是 Dbset。因为我在 DAL 中没有引用我的模型,所以 dbset 失败。

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

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

如果它在我的 BLL 中找不到我的 SomeModel 类,我该如何让它工作?任何帮助将不胜感激。

【问题讨论】:

  • 您的模特坐在哪里?在 DAL 或 BLL 中还是在不同的项目中?
  • 嗨,对不起。我有三个独立的项目。 Web/UI、BLL 和 DAL。我所有的模型都坐在我的 BLL 中。我的 BLL 引用了我的 DAL,所以我的 DAL 不能“看到”我的模型。我对 nTier 应用程序很陌生,所以我发现这有点挑战。顺便说一句,这都是 MVC 模式。

标签: data-access-layer bll dbset


【解决方案1】:

在这种情况下,您需要在 DAL 项目中添加对 BLL 项目的引用。右键单击 References>Add Reference,然后在解决方案选项卡上勾选您的 BLL 项目。

然后,您将能够在类的顶部放置一个 using 语句,类似于以下内容:

using MyApp.BLL;

【讨论】:

  • 我不能这样做,因为我的 BLL 引用了我的 DAL。我会得到一个循环依赖错误。
  • 对不起,我在你的问题中错过了这一点。你最好看看在你的 BLL 和你的 DAL 之间实现一个接口。在不重新发明轮子的情况下,一个很好的解释是:codeproject.com/Articles/616344/…
  • 谢谢马特。看起来像要走的路。 :)
猜你喜欢
  • 2015-05-13
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2012-02-19
  • 2014-01-09
相关资源
最近更新 更多