C# 将方法添加到其他文件中自动生成的分部类

C# 将方法添加到其他文件中自动生成的分部类,c#,entity-framework,class,C#,Entity Framework,Class,我明白这一点 我的自动生成文件包含dbContext的以下代码: public partial class TrafficEngineEntities : DbContext { public TrafficEngineEntities() : base("name=TrafficEngineEntities") { } 我可以修改该文件以添加带有字符串参数的附加方法: public partial class TrafficEngineEntities

我明白这一点

我的自动生成文件包含dbContext的以下代码:

public partial class TrafficEngineEntities : DbContext
{
    public TrafficEngineEntities()
        : base("name=TrafficEngineEntities")
    {
    }
我可以修改该文件以添加带有字符串参数的附加方法:

public partial class TrafficEngineEntities : DbContext
{
    public TrafficEngineEntities()
        : base("name=TrafficEngineEntities")
    {
    }

    public TrafficEngineEntities(string connectionString)
       : base("name=TrafficEngineEntities")
    {
    }
但是,如果我尝试只编写部分来在一个单独的文件中添加额外的方法(以避免在更新情况下覆盖),那么VisualStudio说我的db tables类不是dbcontext的一部分,就像我覆盖部分类中的所有内容一样

public partial class TrafficEngineEntities : DbContext
{
    public TrafficEngineEntities(string connectionString)
       : base("name=TrafficEngineEntities")
    {
    }
}

这里的问题是手动创建的TrafficEngineEntities分部类和自动生成的TrafficEngineEntities在不同的名称空间中。事实上,这是两个不同的类

通常,解决方案中的名称空间与解决方案文件夹对齐。自动生成的文件可能不遵守此约定,或者您可能会意外地在其他文件夹中创建手动创建的分部类

使您的手动类名称空间与自动生成的类中的名称空间相同,这样就可以解决问题


您可以为文件添加trafficeEngineenties.AutoGenerated.cs和trafficeEngineenties.Patrial.cs等后缀,这样您就可以清楚地看到自动生成的文件和手动编辑的文件之间的区别。

这两个类的名称空间是什么?它们必须相同。@SergeyL你说得对,我在控制器名称空间而不是模型名称空间下创建了类。如果你做出回答,我会接受的。