C# 引用数据项目以使用 NHibernate 和 SQLite 创建模拟数据解决方案

C# Referencing a data project to create a mock up data solution with NHibernate and SQLite

我正在学习本教程

http://gergroen.blogspot.de/2011/11/nhibernate-getting-started-guide.html

我没有遇到任何问题,到目前为止一切都很清楚。

当我尝试引用另一个我有一些大型基础结构数据模式的 DLL 时,我的问题出现了。这个 DLL 充满了要用 Postgres DB 填充的对象,当然,所有属性都有虚拟语句,因此可能是 SQLite 延迟加载。

我正在尝试做一个 Mock Up 项目,以便在最终的 DB Schema 最终完成时进行测试,但是一旦我引用我的外部 DLL,我就会遇到问题。

编译时出现以下错误:

Error 2 The type or namespace name 'External' could not be found (are you missing a using directive or an assembly reference?) C:\Users\john\Downloads\NHibernate-getting-started-guide-master\NHibernate-getting-started-guide-master\NHibernate.GettingStarted\Model\IMedicineRepository.cs 1 7 NHibernate.GettingStarted

代码在哪里(当我在同一命名空间中引用 class 时,相同的代码不会中断,如上面的教程所示):

using External.Infrastructure.Medicine;
using System;

namespace NHibernate.GettingStarted.Model
{
    public interface IMedicineRepository
    {
    /// <summary>
    /// Get person entity by id
    /// </summary>
    /// <param name="id">id</param>
    /// <returns>person</returns>
    Medicine Get(Guid id);

    /// <summary>
    /// Save person entity
    /// </summary>
    /// <param name="person">person</param>
    void Save(Medicine medicine);

    /// <summary>
    /// Update person entity
    /// </summary>
    /// <param name="person">person</param>
    void Update(Medicine medicine);

    /// <summary>
    /// Delete person entity
    /// </summary>
    /// <param name="person">person</param>
    void Delete(Medicine medicine);

    /// <summary>
    /// Row count person in db
    /// </summary>
    /// <returns>number of rows</returns>
    long RowCount();
}

}

我读了一点书,似乎所有的项目都必须在同一个命名空间内,当我尝试使用教程来做到这一点时,这是有道理的。

项目之间的唯一区别是我只是从另一个程序集中引用了一个对象。

有人知道我该如何解决吗?还是我的方法不对?

编辑 1:

另一个理解问题的好问题是:如何从另一个程序集中引用数据对象?我觉得我哪里有问题。

好吧,越看越深……发现问题出在这里:

Referenced Project gets "lost" at Compile Time

一个项目是用 4.5 Framework 编译的,另一个是用 4.0 编译的。

我都切换到 4.5,现在可以用了!

希望这可以帮助到其他人。