我对dbml很好奇....我应该为一个数据库创建一个dbml文件,还是分成不同的部分,例如用户dbml(只有表与用户有关)等?当我这样做时,我会有问题。假设User dbml有一个User表,如果Order dbml也有User表,如果实体名称空间相同,则不允许这样做。如果我为每个dbml设置了不同的实体命名空间,它可以工作但这会给我一个不同的User表实体。当单个数据返回到业务逻辑层时,很难知道要使用哪个用户表的实体名称空间。
如果我构建了一个dbml文件而不是单独的dbml,那么从数据库中获取数据时,单个dbml会比分离的dbml版本慢。
答案 0 :(得分:1)
Linq to SQL旨在使用单个数据上下文对象进行操作。
LINQ to SQL DataContext的生命周期
http://blogs.msdn.com/dinesh.kulkarni/archive/2008/04/27/lifetime-of-a-linq-to-sql-datacontext.aspx
NerdDinner教程使用存储库模式有一个典型的Linq to SQL用法的很好的例子。在所有情况下,存储库对象都使用单个数据上下文对象来执行工作:
http://nerddinnerbook.s3.amazonaws.com/Part3.htm
您尝试做的事情听起来可能更适合Entity Framework。但是,请注意,实体框架在其当前版本中存在一些问题,特别是在延迟加载方面。