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_ACTIVITIOS类中扩展或添加额外的属性

我需要做什么更改,以便我的上下文实现界面以及能够扩展模型

您的扩展OF_activities模型需要具有与库中的of_activities模型完全相同的名称空间。

如果编译器抱怨您尚未实现iActivityLoggerContext,这可能是因为您已经完成了一个名为of_activities的部分类,但没有更改命名空间以匹配库的空间。

NOTE :您只能在同一DLL中放置部分类。即,必须在图书馆中存在任何模型的部分类别扩展。

,如果您无法将扩展模型放在库中。

,您仍然可以使用扩展方法扩展。

最新更新