我在一个编译库中有以下代码
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实现接口以及我能够扩展模型
答案 0 :(得分:0)
扩展的OF_Activities模型需要与库中的OF_Activities模型具有完全相同的命名空间。
如果编译器抱怨你还没有实现IActivityLoggerContext,那可能是因为你已经创建了一个名为OF_Activities的部分类,但没有更改名称空间以匹配库的名称。
注意:您只能拥有一个驻留在同一个dll中的部分类。即,模型的任何部分类扩展都必须存在于库中。
如果无法将扩展模型放在库中,仍可以使用扩展方法扩展类。