【问题标题】: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 层...