Linq to sql LINQ到SQL:单个或多个.dbml(存储过程)

Linq to sql LINQ到SQL:单个或多个.dbml(存储过程),linq-to-sql,Linq To Sql,我读过关于单个和多个dbml的文章,但它是面向使用表的,但我的问题是非常具体地使用存储过程对于多个dbml,我有大约10个查找存储过程,其他的我有getList/insert/update/delete。。。。这个名单越来越疯狂,越来越难保持关注,我很容易花很多时间浏览这些狂欢 如果只使用存储过程,那么使用多个DBML可以吗?所以我计划有两个独立的DBML 1) 查找 2) 获取列表/插入/删除/更新 有什么想法吗?如果您有多个DBML,我不相信您可以共享数据上下文。我还认为,如果您有两个Dat

我读过关于单个和多个dbml的文章,但它是面向使用表的,但我的问题是非常具体地使用存储过程对于多个dbml,我有大约10个查找存储过程,其他的我有getList/insert/update/delete。。。。这个名单越来越疯狂,越来越难保持关注,我很容易花很多时间浏览这些狂欢

如果只使用存储过程,那么使用多个DBML可以吗?所以我计划有两个独立的DBML 1) 查找 2) 获取列表/插入/删除/更新


有什么想法吗?

如果您有多个DBML,我不相信您可以共享数据上下文。我还认为,如果您有两个DataContext,默认情况下它们不共享相同的连接,因此您更有可能在某些使用模式下升级到分布式事务


所以我建议不要使用多个DBML文件。如果您真的需要该功能,请升级到Entity Framework 4.0,据我所知,它允许您拥有共享相同DataContext的多个EDMX文件。

我最近遇到了一种情况,我有一个库项目,该项目对数据库中的某些表执行操作。我使用SqlMetal生成了一个DataContext代码文件(我不需要dbml文件,尽管我认为这不会有什么坏处)

然后我构建了一个使用这个库的应用程序。该应用程序在与库相同的表上执行操作,但还添加了几个其他表(这些表引用库使用的表或相互引用)。我使用SqlMetal为应用程序生成DataContext代码文件。所以,我现在有两个不同的DataContext用于同一个数据库

当我把所有的东西都放在一起时,我有点担心,但它很有魅力。即使library DataContext和app DataContext都使用不同的连接对象(但使用相同的连接字符串)访问同一数据库,也没有明显的问题

这可能不是推荐的做法,也可能不适合大型应用程序,但在这种情况下,这不是问题。我应该注意,每次对DataContext执行操作时,我都会小心地使用
using
关键字,以确保正确处理连接


注意:我没有使用存储过程,只有标准的选择、插入、更新、删除,但我认为使用存储过程会得到类似的结果。

我不能在这个项目中使用EF。然后我强烈建议不要使用两个DBML文件。为什么会说?有什么不好的经历吗@DanM正在成功使用?有什么意见吗?DanM:我的所有dbml和存储库都有一个seprate类库,我还没有开始,但是你认为在自己的程序集中有一个好主意吗?有什么意见吗?或者你能稍微扩展一下你的架构吗?我的两个DataContext代码文件在两个独立的程序集中。不过,我不认为它们在不同的程序集中还是在相同的程序集中会有任何区别。我要注意的是,确保在完成DataContext后将其处理掉。