将方法添加到另一个文件中的自动生成的分部类

时间:2018-04-23 20:40:25

标签: c# entity-framework class

我关注此answer

我的自动生成的文件包含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")
    {
    }

但是,如果我只尝试编写部件以在分离的文件中添加附加方法(以避免在更新时覆盖),那么visual studio说我的db表类不是部分dbcontext的一部分,就像我覆盖了部分类中的所有内容一样。

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

1 个答案:

答案 0 :(得分:2)

这里的问题是您手动创建的TrafficEngineEntities分部类和自动生成的TrafficEngineEntities位于不同的名称空间中。所以,实际上这些是两个不同的类。

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

使您的手动类命名空间与自动生成的类相同,它应该解决问题。

您可以为您的文件添加后缀,例如TrafficEngineEntities.AutoGenerated.cs和TrafficEngineEntities.Patrial.cs,这样您就可以清除自动生成和手动编辑文件之间的区别。