我可以在nuget包中进行部分课程吗?

Fel*_*lix 0 c# nuget nuget-package

我正在构建一个nuget将在企业中的许多项目中共享的包.它本质上是实体框架模型.在某些时候,这些类是从数据库中搭建的,并且生成的类都被定义为部分类(所有示例仅用于说明目的):

public partial class Customer { ... }
public partial class Order { ... }
Run Code Online (Sandbox Code Playgroud)

一些项目利用了这一点partial并开发了超出数据库关注范围​​的其他功能:

public partial class Customer {
   // get distance from the office to customer home
   public decimal Distance { get { ... } }
}
Run Code Online (Sandbox Code Playgroud)

允许在LINQ语句中使用此计算值:

from c in Customer where Distance < 100 select c
Run Code Online (Sandbox Code Playgroud)

但是现在"核心"类的集合在nuget包中,这些类不再是局部的.有没有办法强迫nuget尊重partial属性?我意识到它的耦合太紧; 但它会大大简化从"嵌入式"模型到nuget的过渡

dbr*_*lon 6

在C#中,您无法利用部分机制将类的定义拆分为不同的程序集.

请参阅msdn说明.

扩展怎么样?使用同一名称空间中的方法在扩展类中定义方法.