在我的数据库设计的,我往往有"集群"的表格。这些集群通常会支持的一个应用程序或集团的紧密功能相关的应用程序。通常,这些集群,也涉及各个其他通过一个相对较小数量的外国键;这有助于独立应用程序的业务的整合。

因此,例如:想象一下我有的应用程序"Foo","Bar",并"Baz",有几个表格用于他们每个人。这里有一个列表,表和他们的外键参考文献:

  • FooTableOne
  • FooTableTwo->FooTableOne
  • BarTableOne->FooTableTwo
  • BarTableTwo->BarTableone
  • BazTableOne
  • BazTableTwo->FooTableTwo,BazTableOne

目前,我正在使用皇宫-对-SQL访问这些表格。我有一个单独的项目对每个集群(Foo,酒吧,和Baz),并且每一个这些项目有一个.申请所有表格中的集群。这里的想法是,每个(一个或多个)的应用程序使用的集群可以导入一个共用图书馆的含皇宫类的需要。

这可能会或可能不是一个很好的想法;它看起来像 陪审团 仍然 出来.我真的不知道是否我可以有参考文献之间的集群表达了类在另一个集群,尽管它们存在不同的上下文中的类。(及,更具体地说,如何创建这种关系在Visual Studio)。

回到这个例子中,我想要有:

  • 项目Foo
    • Foo。申请
    • FooDataContext
    • FooTableOne
      • FooTableOne.FooTableTwos
    • FooTableTwo
      • FooTableTwo.FooTableOne
      • FooTableTwo.BarTableOnes(这个并不重要,重要的)
      • FooTableTwo.BazTableTwos(这个并不重要,重要的)
  • 项目吧
    • 酒吧。申请
    • BarDataContext
    • BarTableOne
      • BarTableOne.FooTableTwo
      • BarTableOne.BarTableTwos
    • BarTableTwo
      • BarTableTwo.BarTableOne
  • 项目Baz
    • Baz.申请
    • BazDataContext
    • BazTableOne
      • BazTableOne.BazTableTwos
    • BazTableTwo
      • BazTableTwo.FooTableTwo
      • BazTableTwo.BazTableOne

出门,所有参考的背景下实体的简单标识(int),而不对象,并将收集到的背景下实体不存在。我知道我可以加入我自己的方法对这些类做适当的查询(给出的实例,下文),但是我想让事情变得更简化的&保持一致。

注意,与这个分离的情况下/群集的,我得到的模块化之间的应用。因此,例如,Baz应用程序只会导的巴兹和Foo情况(由于Baz取决于Foo),但不是酒吧。(这个假设我没有收藏的酒吧实体在Foo,这是精通过我)。这是一件好事,但这不是关键:如果皇宫/VS不会让这个简单然后我会考虑拆散的模块化和跟一个大背景。

有帮助吗?

解决方案

L2S不能模型的关系,跨越申请文件。海事组织,这是一个主要缺陷的L2S.我挣扎,这在我们的应用程序。我们所有实体在独立申请文件。每个申请文件代表了一个名字空间在我们的应用程序,以及一个架构在我们SQL服务器数据库。

那么,什么我做了是对的每个实体有一个属性,表示一个外国的关系在不同的名字空间,我把一个定义关联的属性在酒店中的一个分类,即模仿L2S关联的属性。这个定义属性使我们能够管理的关系,我们自己。不太有效,因为具有L2S这样做,但它工作得很好。

兰迪

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top