2010-10-28 76 views
0

我似乎无法跨项目拆分命名空间。跨项目拆分命名空间

我有一个DatabaseAccess项目,其中有一个名为SCS(某些疯狂系统)的文件夹,它为SCS数据库提供数据访问。现在这个SCS有实体框架(.edmx)生成的实体。我想在我的BusinessModel项目中扩展这些实体。不过,我似乎无法这样做。下面是我的例子。我创建一个部分类,并创建具有相同名称的命名空间在我的实际DatabaseAccess项目的命名空间:

namespace DatabaseAccess.SCS{ 
    public partial SomeEntity{ 
     public void DoSomething(){ 
      var x = this.GeneratedField; 
     } 
    } 
} 

做上述不起作用。它抱怨GeneratedField不是SomeEntity类的一部分,尽管它是。如果我弹出打开edmx的SCS.Designer,SomeEntity确实有一个GeneratedField的定义,SomeEntity是DatabaseAccess.SCS命名空间的一部分。是什么赋予了?

回答

1

你不只是分割在多个项目中出现的命名空间,但该类了。我怀疑这是可能的,因为通常构建这样的对象通常是非常困难的,因为每个对象通常对...有很强的依赖关系......本身! (扩展方法虽然可以提供类似的功能 - 虽然我不建议过度使用他们同样没有文档。)

你为什么不只是有部分在同一项目作为它的其他部分?

+0

你是对的。我已决定将这个部分放在同一个项目中。它在结构上也更好。 – Riz 2010-10-29 17:27:44

0

如果局部类不在同一个项目,你必须添加一个引用从其他项目建设大会。否则,为了扩展它,本地项目还不知道该类。