我有以下问题: 在我的应用程序中,我必须连接到 Access 数据库——是的,我知道 Access 不是一个很好的数据库——但我必须使用它。
该应用程序将使用 WPF 编写,带有 MVVM Light Toolkit 和“NHibernate”。
如何将“NHibernate”与 MVVM Light Toolkit 连接?我是否将 Hibernate 实体用作“MVVM”模型?存储仅在运行时需要的用户设置的最佳位置是什么?
我有以下问题: 在我的应用程序中,我必须连接到 Access 数据库——是的,我知道 Access 不是一个很好的数据库——但我必须使用它。
该应用程序将使用 WPF 编写,带有 MVVM Light Toolkit 和“NHibernate”。
如何将“NHibernate”与 MVVM Light Toolkit 连接?我是否将 Hibernate 实体用作“MVVM”模型?存储仅在运行时需要的用户设置的最佳位置是什么?
如何将“NHibernate”与 MVVM Light Toolkit 连接?
鉴于三层架构,您的 GUI 应该与数据库层不同。
这意味着您不应该将 MVVM 框架和 ORM 框架捆绑在一起。在此绑定将具有的许多其他缺点中,它会在您的 GUI 和 DB 之间产生高度耦合,并且如果有一天您想要更改其中的一些框架,它会非常难以替换。
我是否将休眠实体用作“MVVM”模型
最终的松散耦合将是创建一个不同的程序集来存储您的实体,您可以从您的 GUI(它们将充当“MVVM”模型)和您的 DAL(它们将充当 NHibernate 实体)引用它。
存储仅在运行时需要的用户设置的最佳位置是什么?
存储用户设置的最佳位置是在标记App.config
下的文件中<userSettings>
,您也可以从作用域.Settings
下的文件中进行操作。User
您可以轻松访问它们:
var mySetting = Settings.Default.mySetting;
如果您想要仅在应用程序的生命周期中可用的设置,您可以在静态类中创建属性来保存您的设置:
public static class UserSettings
{
public static string MySetting { get; set; }
}
希望这可以帮助
也许阅读这篇文章以开始使用 MVVM 模式。
不,您不会在应用程序中将 nHibernate 实体用作 ViewModel,否则您将拥有 MVM 模式或类似的东西;)
将实体用作直接暴露给前端的模型通常不是一个好主意,因为您会混淆数据和 UI 层......