Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体模型:如何移动实体模型&x27;将生成的实体类添加到单独的程序集_C#_Entity Framework - Fatal编程技术网

C# 实体模型:如何移动实体模型&x27;将生成的实体类添加到单独的程序集

C# 实体模型:如何移动实体模型&x27;将生成的实体类添加到单独的程序集,c#,entity-framework,C#,Entity Framework,我已经从创建实体类的数据库中生成了实体模型 1) 有没有一种方法可以为每个类创建单独的文件? 2) 我们可以将这些类移动到其他程序集吗?例如,如何将这些类移动到解决方案中的其他项目中 我想将实体模型与类分开,并使用表示层中的类。您当然可以在单独的项目中创建edmx,但我不认为您可以将这些类分开为多个生成的默认文件。请注意,您不应该试图编辑生成的类,因为这些类在更新时将被覆盖,并且您也可以很容易地破坏这些内容 但是,您可以创建一个与每个实体对象具有相同名称空间和类声明的公共部分类,以允许您扩展类并

我已经从创建实体类的数据库中生成了实体模型

1) 有没有一种方法可以为每个类创建单独的文件? 2) 我们可以将这些类移动到其他程序集吗?例如,如何将这些类移动到解决方案中的其他项目中


我想将实体模型与类分开,并使用表示层中的类。

您当然可以在单独的项目中创建
edmx
,但我不认为您可以将这些类分开为多个生成的默认文件。请注意,您不应该试图编辑生成的类,因为这些类在更新时将被覆盖,并且您也可以很容易地破坏这些内容

但是,您可以创建一个与每个实体对象具有相同名称空间和类声明的
公共部分类
,以允许您扩展类并添加初始化/验证函数等。允许您将每个实体放在自己的类文件中进行扩展

更新:

所有相关的分部类必须位于同一程序集中,并且需要使用与
.Designer.cs
中的原始实体
分部类
相同的命名空间和类声明。参见下面的示例代码

namespace YourEntityNamespace
{
    public partial class YourEntity : EntityObject
    {
        // Add methods and properties to extend the entity class
    }
}
  • 否(在默认的.edmx生成器中),因为VS的自定义工具是IVsSingleFileGenerator类型,并且只能生成一个文件
  • 是,但您需要自定义对象层代码生成。阅读有一个示例演示了如何在项目之间分离模型和生成的类

  • @Chris,分部类不能跨程序集拆分。关于这一点,这里有很多问题/答案。

    您能告诉我如何生成这些分部类吗?示例语法?这些类可以放在单独的程序集中吗?更新了我的帖子。谷歌很快就证明了这一限制是正确的。我部分错了。生成的类似乎可以移动到另一个程序集。更新了帖子。