【问题标题】:Connect NHibernate with the MVVM Light Toolkit将 NHibernate 与 MVVM Light Toolkit 连接起来
【发布时间】:2013-09-26 21:37:45
【问题描述】:

我有以下问题: 在我的应用程序中,我必须连接到 Access 数据库——是的,我知道 Access 不是一个很好的数据库——但我必须使用它。

应用程序将使用 WPF 编写,带有 MVVM Light Toolkit 和“NHibernate”。

如何将“NHibernate”与 MVVM Light Toolkit 连接? 我是否将 Hibernate 实体用作“MVVM”模型? 存储仅在运行时需要的用户设置的最佳位置是什么?

【问题讨论】:

    标签: wpf nhibernate mvvm fluent-nhibernate mvvm-toolkit


    【解决方案1】:

    如何将“NHibernate”与 MVVM Light Toolkit 连接起来?

    鉴于 Three Layer Architecture,您的 GUI 应该与数据库层不同。

    这意味着您不应将 MVVM 框架和 ORM 框架捆绑在一起。 此绑定将具有许多其他缺点,它会在您的 GUI 和 DB 之间产生高度耦合,并且如果有一天您想要更改其中的一些框架,它会非常难以替换。

    我是否将 Hibernate 实体用作“MVVM”模型

    最终的松散耦合将是创建一个不同的程序集来存储您的实体,您可以从您的 GUI(它们将充当“MVVM”模型)和您的 DAL(它们将充当 NHibernate 实体)引用它.

    存储仅在运行时需要的用户设置的最佳位置是什么?

    存储用户设置的最佳位置是在<userSettings> 标记下的App.config 文件中,您也可以在User 范围下的.Settings 文件中执行此操作。

    您可以轻松访问它们:

    var mySetting = Settings.Default.mySetting;
    

    如果您希望设置仅在应用程序的生命周期中可用,您可以在静态类中创建属性来保存您的设置:

    public static class UserSettings
    {
        public static string MySetting { get; set; }
    }
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      也许阅读 this article 以开始使用 MVVM 模式。

      不,您不会在应用程序中将 nHibernate 实体用作 ViewModel,否则您将拥有 MVM 模式或类似的东西;)

      将实体用作直接暴露给前端的模型通常不是一个好主意,因为您会混淆数据和 UI 层...

      【讨论】:

        猜你喜欢
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        • 2014-10-28
        相关资源
        最近更新 更多