DBContext实现接口

时间:2016-06-23 06:37:56

标签: entity-framework user-interface dbcontext

我在一个编译库中有以下代码

public interface IActivityLoggerContext
{
    DbSet<OF_Activities> OF_Activities { get; set; }
}



public partial class OF_Activities
{  
    [Key, Column(Order = 0)]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public System.Guid ActivityID { get; set; }

    public int ModifiedBit { get; set; }
}

在我的项目中,我引用上面的库并使用它,如下所示

public partial class OFrameEntities : DbContext, IActivityLoggerContext
{
    public OFrameEntities()
        : base("name=DefaultConnection")
    {
    }

    public virtual DbSet<BL_Categories> BL_Categories { get; set; } //model in this DBContext

    public virtual DbSet<OF_Activities> OF_Activities { get; set; } //Implementing the interface (IActivityLoggerContext) From the library

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {

    }
}

现在一切正常。

但问题是我无法在项目的OF_Activities类中扩展或添加额外的属性

我需要进行哪些更改才能使我的Context实现接口以及我能够扩展模型

1 个答案:

答案 0 :(得分:0)

扩展的OF_Activities模型需要与库中的OF_Activities模型具有完全相同的命名空间。

如果编译器抱怨你还没有实现IActivityLoggerContext,那可能是因为你已经创建了一个名为OF_Activities的部分类,但没有更改名称空间以匹配库的名称。

注意:您只能拥有一个驻留在同一个dll中的部分类。即,模型的任何部分类扩展都必须存在于库中。

如果无法将扩展模型放在库中,仍可以使用扩展方法扩展类。