Mvc项目中的接口,数据项目中的实现 - 循环参考?

时间:2012-07-04 09:49:36

标签: asp.net-mvc

我正在开发一个mvc应用程序,只是为了练习一些最佳实践(试图以'正确'的方式做所有事情)。更确切地说,我想到了为聊天服务构建一个带有一些ajax端点的MVC应用程序。

我想让那个更灵活一点,所以我想用interfaces来定义用过的对象的结构。然后,这些接口应由DataLayer项目实现。

现在我想在Mvc-Project中定义这些接口,并将数据层内容放在一个单独的项目中。这会导致循环引用,我认为这是不好的做法。

解决此问题的“正确”方法是什么?我的方法合理吗?

一些代码显示我想要存档的内容:

Mvc Project:

public interface IChatUser
{
    Guid    UserID  { get; }
    string  Name    { get; }
}

Datalayer Project(类的一部分):

public class User : IChatUser
{
    private Guid _userID;
    public  Guid UserID
    {
        get
        {
            return _userID;
        }
    }
    public string Name
    {
        get
        {
            return this.LastName + " ," + this.FirstName;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你是不是只使用NHibernate?如果您是控制器,则可以访问要运行的任何基本查询的Session对象。

复杂的东西被分解成单独的查询或命令对象。

我们使用这里讨论的内容构建了一个完整的MVC应用程序:http://ayende.com/blog/154081/limit-your-abstractions-you-only-get-six-to-a-dozen-in-the-entire-app并对结果非常满意。