我有以下问题:在我的应用程序中,我必须连接到 Access 数据库 - 是的,我知道 Access 不是一个很好的数据库 - 但我必须使用它。
该应用程序将使用WPF编写,带有MVVM Light Toolkit和"NHibernate"。
如何将"NHibernate"与 MVVM Light Toolkit 连接?我是否将休眠实体用作"MVVM"模型?存储仅在运行时需要的用户设置的最佳位置是什么?
如何将"NHibernate"与 MVVM Light Toolkit 连接?
给定三层架构,您应该将 GUI 与数据库层区分开来。
这意味着您不应该将 MVVM 框架和 ORM 框架捆绑在一起。在这种绑定将具有的许多其他缺点中,它将在GUI和DB之间创建高度耦合,并且如果有一天您想要更改其中一些框架,则很难替换它。
我是否将休眠实体用作"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; }
}
希望这有帮助
也许阅读本文以开始使用 MVVM 模式。
不,您不会在应用程序中将 nHibernate 实体用作 ViewModels,否则您将拥有 MVM 模式或类似的东西;)
使用实体作为直接公开到前端的模型通常不是一个好主意,因为您会混淆数据和 UI 层......