WPF:如何告诉我的DataLayer使用哪个DataContext?

时间:2010-08-13 18:39:29

标签: wpf linq-to-sql data-access

我有一个解决方案,其中我有3个WPF项目(项目UI-A,项目UI-B和项目名为CommonLibrary(数据层)。我在项目UI-A中有一个用户注册表单,我将捕获用户配置文件信息。在CommonLibrary项目中,我有一个名为UserCommon的类,它有一个方法将数据保存到db表。我使用LINQ 2 SQL与{{1}中的数据库通信在项目UI-A中,我将有一个dropdonw列表,其中包含CommonLibraryDevelopment等选项,我可以选择此操作的位置。

现在我如何告诉CommonLibrary中的方法使用哪个datacontext(开发或生产)?传递一个变量(提到它的开发或生产) 在所有方法中作为参数是唯一的方法吗?还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

我建议将该设置放在app.config文件中,然后通过ConfigurationManager访问它。你不想要的是代码中的变量集。

另一种选择是使用依赖注入工具从外部文件构建其配置。但是,这通常不是人们想要配置依赖注入的方式。 (这在代码中更清晰。)

您还可以构建一个生成DataContext对象的工厂方法,为正确的配置进行预配置。这将决策分离为单一方法。

答案 1 :(得分:0)

听起来有点像战略模式问题:http://www.dofactory.com/Patterns/PatternStrategy.aspx#_self2