我有一個自引用的實體類別,它具有子類別。它工作得很好。實體框架數據庫首先,自引用實體層次結構的接口
現在我想實現一個JsTree助手,但因爲我有另一個使用類似結構的不同項目(類別在兩個項目中都是100%相似的實體)我想在類庫中實現助手,可用於兩者。
這是由實體框架生成的代碼,在這裏沒有改變:
[EdmEntityTypeAttribute(NamespaceName="MyModel", Name="Category")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class Category : EntityObject
{
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[XmlIgnoreAttribute()]
[SoapIgnoreAttribute()]
[DataMemberAttribute()]
[EdmRelationshipNavigationPropertyAttribute("MyModel", "FK_Categories_Categories", "Categories1")]
public EntityCollection<Category> Subcategories
{
get
{
return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Category>("WebDirectoryModel.FK_Categories_Categories", "Categories1");
}
set
{
if ((value != null))
{
((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Category>("MyModel.FK_Categories_Categories", "Categories1", value);
}
}
}
}
這是我寫的接口:
public interface ICategory
{
System.Int32 CategoryId { get; set; }
System.String DefaultName { get; set; }
EntityCollection<ICategory> Subcategories { get; set; }
}
然後我又增加了部分類分類實施ICategory :
public partial class Category : ICategory
{
}
問題是,我得到以下編譯e rror:
Error 6 'MyProject.EntityFramework.Models.Category' does not implement interface member 'ICategory.Subcategories'. 'MyProject.EntityFramework.Models.Category.Subcategories' cannot implement 'ICategory.Subcategories' because it does not have the matching return type of 'System.Data.Objects.DataClasses.EntityCollection < ICategory > '.
任何想法來解決這個問題?我究竟做錯了什麼?類別正在實施ICategory,因此ICategory中的子類別(ICategory集合)應該匹配,是不是?
我使用EF 4.4,但我認爲問題與此無關。提前致謝。