我有一个复杂的数据库,想知道为存储过程创建一个单独的 edmx 是否是一个好方法?我的想法是根据使用数据库的应用程序拥有多个 edmx 文件。这样,每个应用程序将只能访问它需要的存储过程。
问问题
70 次
2 回答
1
EMD
想到以下不分开 s 的原因
- 如果您的过程映射到您将写回数据库的实体,您将为自己创建更多工作。
- 拥有 2
EDM
s 意味着有 2 种选择Context
可能没有逻辑分离。 - 以我能想到的任何方式,拥有 2
EDM
s 似乎并不干净。
于 2013-10-24T15:40:11.717 回答
1
我不明白为什么这会是个问题。
虽然@Khan 在某些情况下可能是正确的,但我相信如果您的项目足够大,那么您可以将它们分开,如果它有助于您保持井井有条。
我已经在我想分离关注点的一些应用程序中做到了这一点。
我的解决方案有一个管理项目和一个用户项目,我添加了第三个作为包含两个 EDMX 的 DLL。然后我在两个项目中添加了对同一个 dll 的引用。
混合数据访问层对我来说似乎不合适。
对于管理员来说是这样的:
private void SomeAdminFunction()
{
using (var db = new AdminEntities())
{
//Access all Admin Stored Procedures
}
}
对于用户:
private void SomeUserFunction()
{
using (var db = new UserEntities())
{
//Access all User Stored Procedures
}
}
于 2013-10-24T15:33:55.043 回答