我试图找出关于如何组织 DataContexts 的最佳策略。我们工作的典型数据库有 50 到 100 个表,通常是第三范式,它们之间有很多关系。我认为我们有两个选择:
- 将所有表放在一个上下文中。这将确保我们所做的任何事情都将在数据库中以正确的顺序提交。问题是 LINQ 设计器会弄乱 50 多个表,我担心性能可能会受到影响。
- 根据表的逻辑分组创建多个数据上下文。问题在于,在某些地方,关系的一侧将在一个上下文中,而另一侧在另一个上下文中。我们必须手动处理以正确的顺序提交两个上下文。
有没有推荐的做法来处理这个问题?
更多细节:
我想在 LINQ to SQL 之上创建自己的实体和工作单元。实体将在 xml 模型文件中定义,其中还将指定到 LINQ 实体的映射。自定义工具将根据模型生成我的实体 (POCO)。客户端代码将仅与我的实体和我的工作单元交互;永远不要直接使用 DataContext 或 LINQ 实体。但是我不想复制 LINQ to SQL 提供的开箱即用的功能,所以我想使用底层的 LINQ DataContext。这意味着我不能在不同的数据上下文中拥有两个订单,因为不可能将我的 POCO 订单与它们都映射。