C#引用一个数据项目,用NHibernate和SQLite创建一个模拟数据解决方案

本文关键字:一个 数据 SQLite 创建 解决方案 NHibernate 模拟 数据项 引用 项目 | 更新日期: 2024-04-03 09:13:48

我一直在学习教程

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

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

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

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

当我编译时,我得到以下错误:

错误2找不到类型或命名空间名称"External"(分别为缺少using指令或程序集参考?)C: ''Users''john''Downloads''NHibernate入门指南主''NHibernat入门指南主''NHibernate.GettingStarted''Model''IMedicine Repository.cs 1 7 NHibernate.GettingStarted

代码在哪里(当我引用同一名称空间内的类时,这个代码不会中断,如上面的教程所示):

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:

理解这个问题的另一个好问题是:如何引用来自另一个程序集的数据对象?我想这就是我的问题所在。

C#引用一个数据项目,用NHibernate和SQLite创建一个模拟数据解决方案

好吧,看得越来越深。。。我发现这就是问题所在:

引用的项目得到";丢失";编译时

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

我把两者都切换到4.5,现在它起作用了!

希望这能帮助其他人。