1

我有一个 .dbml 文件,其中当然包含基于我的表自动生成的类。

但是,我想将它们扩展到我自己的课程。通常我的设计是让我的每个表在它们自己的文件夹中都有自己的命名空间,其中包含所有相关的 dao 和服务类。因此,如果我正在处理一个仅与“客户”有关的页面,我只能包含 customerNS。

但是当使用 LINQ 时,我似乎无法做到这一点。我尝试从项目中删除默认命名空间,我尝试将 .dbml 文件放入具有自定义命名空间的自己的文件夹中,然后添加“使用”语句,但没有任何效果。

我还看到了与 .dbml 文件关联的实体命名空间、上下文命名空间和自定义工具命名空间属性,并尝试将所有这些设置为名称 x 并​​尝试在我的其他类中“使用 x”以允许我扩展部分类,但它只是不起作用。

这是可能的还是我必须将所有扩展的部分类保留在与 .dbml 文件相同的命名空间中?

4

2 回答 2

0

如果类型没有关系,答案很简单:使用多个 dmbl 文件。如果您需要关系并且还希望读取多个名称空间。

您可以使用 T4 模板文件完成此操作。在 VS2010 中有一个模板可以创建一个(它被称为生成器模板或其他东西)。对于 VS2008,您可以在 codeplex 上找到一个

您需要对标准模板进行的更改是您需要确保所有属性都使用完全限定名称(因为相关类型现在位于不同的命名空间中)。对于大多数控制,您可能可以从生成的类中跳过命名空间信息(因此您可以在部分类中定义它)。

于 2010-04-06T22:31:51.823 回答
0

您必须将所有 linq 类保存在一个命名空间中。为什么你试图将 DO 类放在不同的命名空间中?

于 2010-04-06T22:04:53.067 回答