1

我有一个客户端/服务器应用程序,其中客户端和服务器有一些公用表(作为应用程序的一部分保持同步)。

我们目前将这些表(即 FileDetails)存储在 Shared.dbml 文件中。到目前为止,任何返回 FileDetails 集结果的存储过程都已放置在 Shared.dbml(即使它是仅服务器)SP 中。

我发布了 LINQ to SQL 支持 DBML 上的基类属性,我想也许我可以有一个 Server.dbml,它扩展了我的 Shared.dbml。从理论上讲,这会给我一个包含所有共享表和 SP 以及特定于服务器的元素的 ServerDataContext。通常在 SQL 设计器中,我会将 SP 拖放到 FileDetails 表上以显示这是返回的内容,但是由于该类位于不同的 DBML 中,这是不可能的,并且在 XML 中我不认为 ElementType IdRef="1" 方法将起作用(因为 ref 需要指向另一个文件)

我发现我可以通过手动编辑 XML 返回类型来解决这个问题:

<Function Name="dbo.SELECT_FTS_FILES" Method="SELECT_FTS_FILES">
    <Return Type="ISingleResult&lt;DataTypes.FileDetails&gt;" />
</Function>

我的问题是,有没有人对这种方法有任何经验,并且可以指出我更多的资源?它是否有任何明显的缺点(除了手动 XML 更新)

欢迎所有反馈

4

1 回答 1

2

您可以从您的数据上下文继承。但是,在您的新数据上下文中,您将无法使用 linq 设计器,您必须手动编写代码。

你有什么理由不想要两个数据上下文?

继承和 LinqToSql 通常不能很好地结合在一起。如果你对它有很深的需求,你应该研究另一个像 NHibernate 这样的 ORM。

于 2009-05-21T12:41:54.113 回答